{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# CPSC 330 Lecture 11"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Lecture plan\n",
    "\n",
    "- 👋\n",
    "- **Turn on recording**\n",
    "- Announcements\n",
    "- True/False from last class (10 min)\n",
    "- Ensembling with regression (5 min)\n",
    "- Prediction intervals (20 min)\n",
    "- Break (5 min)\n",
    "- Feature importances: linear regression (30 min)\n",
    "- Feature importances: beyond linear models (20 min)\n",
    "\n",
    "Note: this lecture is too long\n",
    "\n",
    "Piazza:\n",
    "\n",
    "- T/F questions \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Learning objectives\n",
    "\n",
    "- Apply ensemble methods to regression problems\n",
    "- Generate prediction intervals using quantile regression\n",
    "- Communicate about uncertainty of predictions in regression problems\n",
    "- Interpret the coefficients of linear regression, including for scaled numeric variables\n",
    "- Resist the urge to interpret coefficients / feature importances as having a causal relationship\n",
    "- Apply SHAP to assess measure importances and interpret model predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "slideshow": {
     "slide_type": "skip"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import scipy.stats\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.model_selection import train_test_split, cross_val_score, cross_validate\n",
    "from sklearn.preprocessing import normalize, scale, Normalizer, StandardScaler, OrdinalEncoder, OneHotEncoder\n",
    "from sklearn.linear_model import LogisticRegression, LinearRegression, Ridge\n",
    "from sklearn.ensemble import RandomForestRegressor, VotingRegressor, StackingRegressor, GradientBoostingRegressor\n",
    "from sklearn.dummy import DummyRegressor\n",
    "from sklearn.tree import DecisionTreeRegressor\n",
    "from sklearn.impute import SimpleImputer\n",
    "from sklearn.compose import ColumnTransformer\n",
    "from sklearn.pipeline import Pipeline, make_pipeline\n",
    "from sklearn.metrics import r2_score, mean_squared_error\n",
    "\n",
    "from xgboost import XGBRegressor\n",
    "from lightgbm import LGBMRegressor\n",
    "\n",
    "import shap"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from utils import cross_validate_std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams['font.size'] = 16"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def mape(true, pred):\n",
    "    \"\"\"\n",
    "    Compute the Mean Absolute Percent Error (MAPE)\n",
    "    given true target values and predictions.    \n",
    "    \"\"\"\n",
    "    return 100.*np.mean(np.abs((pred - true)/true))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Announcements\n",
    "\n",
    "- 2nd half of Lecture 10 recording was lost\n",
    "- I re-recorded and posted on course README (not Canvas)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data processing code from last class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv(\"data/housing.csv\", index_col=0)\n",
    "\n",
    "df_train, df_test = train_test_split(df, random_state=123)\n",
    "\n",
    "X_train = df_train.drop(columns=['SalePrice'])\n",
    "y_train = df_train['SalePrice']\n",
    "\n",
    "X_test = df_test.drop(columns=['SalePrice'])\n",
    "y_test = df_test['SalePrice']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "numeric_features     = ['LotFrontage', 'LotArea', 'OverallQual', 'OverallCond', 'YearBuilt', \n",
    "                        'YearRemodAdd', 'MasVnrArea', 'BsmtFinSF1', 'BsmtFinSF2', 'BsmtUnfSF', \n",
    "                        'TotalBsmtSF', '1stFlrSF', '2ndFlrSF', 'LowQualFinSF', 'GrLivArea', \n",
    "                        'BsmtFullBath', 'BsmtHalfBath', 'FullBath', 'HalfBath', \n",
    "                        'TotRmsAbvGrd', 'Fireplaces', 'GarageYrBlt', 'GarageCars', \n",
    "                        'GarageArea', 'WoodDeckSF', 'OpenPorchSF', 'EnclosedPorch', '3SsnPorch', \n",
    "                        'ScreenPorch', 'PoolArea', 'MiscVal', 'YrSold']\n",
    "ordinal_features_reg = ['ExterQual', 'ExterCond', 'BsmtQual', 'BsmtCond', 'HeatingQC', \n",
    "                        'KitchenQual', 'FireplaceQu', 'GarageQual', 'GarageCond', 'PoolQC']\n",
    "ordinal_features_oth = ['BsmtExposure', 'BsmtFinType1', 'BsmtFinType2', \n",
    "                        'Functional',  'Fence']\n",
    "categorical_features = list(set(X_train.columns) - set(numeric_features) - set(ordinal_features_reg))\n",
    "\n",
    "ordering = ['Po', 'Fa', 'TA', 'Gd', 'Ex']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "numeric_preprocessing = make_pipeline(SimpleImputer(strategy='median'), \n",
    "                                      StandardScaler())\n",
    "ordinal_preprocessing = make_pipeline(SimpleImputer(strategy='most_frequent'), \n",
    "                                      OrdinalEncoder(categories=[ordering]*len(ordinal_features_reg)))\n",
    "categorical_preprocessing = make_pipeline(SimpleImputer(strategy='constant', fill_value=\"?\"),\n",
    "                                          OneHotEncoder(handle_unknown='ignore', sparse=False))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "preprocessing = ColumnTransformer([\n",
    "    ('numeric', numeric_preprocessing, numeric_features),\n",
    "    ('ordinal', ordinal_preprocessing, ordinal_features_reg),\n",
    "    ('categorical', categorical_preprocessing, categorical_features)\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "preprocessing.fit(X_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "ohe_columns = list(preprocessing.named_transformers_['categorical'].named_steps['onehotencoder'].get_feature_names(categorical_features))\n",
    "new_columns = numeric_features + ordinal_features_reg + ohe_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>OverallQual</th>\n",
       "      <th>OverallCond</th>\n",
       "      <th>YearBuilt</th>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <th>MasVnrArea</th>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <th>...</th>\n",
       "      <th>Street_Pave</th>\n",
       "      <th>Electrical_?</th>\n",
       "      <th>Electrical_FuseA</th>\n",
       "      <th>Electrical_FuseF</th>\n",
       "      <th>Electrical_FuseP</th>\n",
       "      <th>Electrical_Mix</th>\n",
       "      <th>Electrical_SBrkr</th>\n",
       "      <th>Alley_?</th>\n",
       "      <th>Alley_Grvl</th>\n",
       "      <th>Alley_Pave</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1447</th>\n",
       "      <td>-0.046315</td>\n",
       "      <td>1.654400</td>\n",
       "      <td>-0.775646</td>\n",
       "      <td>1.255836</td>\n",
       "      <td>-0.282035</td>\n",
       "      <td>-1.105566</td>\n",
       "      <td>0.491436</td>\n",
       "      <td>0.327430</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>0.064219</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1124</th>\n",
       "      <td>-0.888437</td>\n",
       "      <td>-0.093394</td>\n",
       "      <td>-0.775646</td>\n",
       "      <td>3.019968</td>\n",
       "      <td>-0.773017</td>\n",
       "      <td>1.117128</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>-0.942714</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>0.297501</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>-0.046315</td>\n",
       "      <td>-0.036795</td>\n",
       "      <td>0.647021</td>\n",
       "      <td>-0.508295</td>\n",
       "      <td>0.634466</td>\n",
       "      <td>0.295697</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>0.365985</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>0.023451</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1021</th>\n",
       "      <td>-0.420591</td>\n",
       "      <td>-0.342035</td>\n",
       "      <td>-1.486980</td>\n",
       "      <td>-0.508295</td>\n",
       "      <td>1.125448</td>\n",
       "      <td>0.972169</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>1.250588</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>-1.038776</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>68</th>\n",
       "      <td>0.140824</td>\n",
       "      <td>0.038184</td>\n",
       "      <td>0.647021</td>\n",
       "      <td>-0.508295</td>\n",
       "      <td>1.059984</td>\n",
       "      <td>0.875531</td>\n",
       "      <td>0.367894</td>\n",
       "      <td>1.227027</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>-0.286837</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1042</th>\n",
       "      <td>-0.046315</td>\n",
       "      <td>-0.122111</td>\n",
       "      <td>-0.064312</td>\n",
       "      <td>2.137902</td>\n",
       "      <td>-0.151106</td>\n",
       "      <td>0.730572</td>\n",
       "      <td>0.845217</td>\n",
       "      <td>-0.085956</td>\n",
       "      <td>0.100152</td>\n",
       "      <td>-0.522384</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1123</th>\n",
       "      <td>-0.046315</td>\n",
       "      <td>-0.143414</td>\n",
       "      <td>-1.486980</td>\n",
       "      <td>-2.272427</td>\n",
       "      <td>-0.478428</td>\n",
       "      <td>-1.395483</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>-0.942714</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>0.238615</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1347</th>\n",
       "      <td>-0.046315</td>\n",
       "      <td>1.094567</td>\n",
       "      <td>0.647021</td>\n",
       "      <td>1.255836</td>\n",
       "      <td>-0.085642</td>\n",
       "      <td>0.875531</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>-0.306571</td>\n",
       "      <td>0.124223</td>\n",
       "      <td>1.441264</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1407</th>\n",
       "      <td>0.047255</td>\n",
       "      <td>-0.193644</td>\n",
       "      <td>-0.775646</td>\n",
       "      <td>1.255836</td>\n",
       "      <td>0.045287</td>\n",
       "      <td>1.068808</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>0.462370</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>-1.029716</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1390</th>\n",
       "      <td>-0.420591</td>\n",
       "      <td>-0.448968</td>\n",
       "      <td>-0.064312</td>\n",
       "      <td>0.373770</td>\n",
       "      <td>-0.969410</td>\n",
       "      <td>-1.685400</td>\n",
       "      <td>-0.569906</td>\n",
       "      <td>-0.139503</td>\n",
       "      <td>-0.284980</td>\n",
       "      <td>-0.468027</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1095 rows × 292 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      LotFrontage   LotArea  OverallQual  OverallCond  YearBuilt  \\\n",
       "Id                                                                 \n",
       "1447    -0.046315  1.654400    -0.775646     1.255836  -0.282035   \n",
       "1124    -0.888437 -0.093394    -0.775646     3.019968  -0.773017   \n",
       "187     -0.046315 -0.036795     0.647021    -0.508295   0.634466   \n",
       "1021    -0.420591 -0.342035    -1.486980    -0.508295   1.125448   \n",
       "68       0.140824  0.038184     0.647021    -0.508295   1.059984   \n",
       "...           ...       ...          ...          ...        ...   \n",
       "1042    -0.046315 -0.122111    -0.064312     2.137902  -0.151106   \n",
       "1123    -0.046315 -0.143414    -1.486980    -2.272427  -0.478428   \n",
       "1347    -0.046315  1.094567     0.647021     1.255836  -0.085642   \n",
       "1407     0.047255 -0.193644    -0.775646     1.255836   0.045287   \n",
       "1390    -0.420591 -0.448968    -0.064312     0.373770  -0.969410   \n",
       "\n",
       "      YearRemodAdd  MasVnrArea  BsmtFinSF1  BsmtFinSF2  BsmtUnfSF  ...  \\\n",
       "Id                                                                 ...   \n",
       "1447     -1.105566    0.491436    0.327430   -0.284980   0.064219  ...   \n",
       "1124      1.117128   -0.569906   -0.942714   -0.284980   0.297501  ...   \n",
       "187       0.295697   -0.569906    0.365985   -0.284980   0.023451  ...   \n",
       "1021      0.972169   -0.569906    1.250588   -0.284980  -1.038776  ...   \n",
       "68        0.875531    0.367894    1.227027   -0.284980  -0.286837  ...   \n",
       "...            ...         ...         ...         ...        ...  ...   \n",
       "1042      0.730572    0.845217   -0.085956    0.100152  -0.522384  ...   \n",
       "1123     -1.395483   -0.569906   -0.942714   -0.284980   0.238615  ...   \n",
       "1347      0.875531   -0.569906   -0.306571    0.124223   1.441264  ...   \n",
       "1407      1.068808   -0.569906    0.462370   -0.284980  -1.029716  ...   \n",
       "1390     -1.685400   -0.569906   -0.139503   -0.284980  -0.468027  ...   \n",
       "\n",
       "      Street_Pave  Electrical_?  Electrical_FuseA  Electrical_FuseF  \\\n",
       "Id                                                                    \n",
       "1447          1.0           0.0               0.0               0.0   \n",
       "1124          1.0           0.0               0.0               0.0   \n",
       "187           1.0           0.0               0.0               0.0   \n",
       "1021          1.0           0.0               0.0               0.0   \n",
       "68            1.0           0.0               0.0               0.0   \n",
       "...           ...           ...               ...               ...   \n",
       "1042          1.0           0.0               0.0               0.0   \n",
       "1123          1.0           0.0               1.0               0.0   \n",
       "1347          1.0           0.0               0.0               0.0   \n",
       "1407          1.0           0.0               0.0               0.0   \n",
       "1390          1.0           0.0               0.0               0.0   \n",
       "\n",
       "      Electrical_FuseP  Electrical_Mix  Electrical_SBrkr  Alley_?  Alley_Grvl  \\\n",
       "Id                                                                              \n",
       "1447               0.0             0.0               1.0      1.0         0.0   \n",
       "1124               0.0             0.0               1.0      1.0         0.0   \n",
       "187                0.0             0.0               1.0      1.0         0.0   \n",
       "1021               0.0             0.0               1.0      1.0         0.0   \n",
       "68                 0.0             0.0               1.0      1.0         0.0   \n",
       "...                ...             ...               ...      ...         ...   \n",
       "1042               0.0             0.0               1.0      1.0         0.0   \n",
       "1123               0.0             0.0               0.0      1.0         0.0   \n",
       "1347               0.0             0.0               1.0      1.0         0.0   \n",
       "1407               0.0             0.0               1.0      1.0         0.0   \n",
       "1390               0.0             0.0               1.0      1.0         0.0   \n",
       "\n",
       "      Alley_Pave  \n",
       "Id                \n",
       "1447         0.0  \n",
       "1124         0.0  \n",
       "187          0.0  \n",
       "1021         0.0  \n",
       "68           0.0  \n",
       "...          ...  \n",
       "1042         0.0  \n",
       "1123         0.0  \n",
       "1347         0.0  \n",
       "1407         0.0  \n",
       "1390         0.0  \n",
       "\n",
       "[1095 rows x 292 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_enc = pd.DataFrame(preprocessing.transform(X_train), index=X_train.index, columns=new_columns)\n",
    "X_train_enc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ensembling with Regression (5 min)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Last week we talked about ensembles. \n",
    "- There are regression analogues of the ensemble methods we covered.\n",
    "  - `VotingClassifier` -> `VotingRegressor`\n",
    "  - `StackingClassifier` -> `StackingRegressor`\n",
    "- There are also regression analogues for the fancy trees, e.g. `XGBRegressor`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "regressors = {\n",
    "    'linear regression' : make_pipeline(preprocessing, Ridge()),\n",
    "    'decision tree' : make_pipeline(preprocessing, DecisionTreeRegressor()),\n",
    "    'random forest' : make_pipeline(preprocessing, RandomForestRegressor(n_estimators=10, random_state=999)),\n",
    "    'XGBoost' : make_pipeline(preprocessing, XGBRegressor(random_state=999)) \n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "results_dict = {name: cross_validate_std(regressor, X_train, y_train, return_train_score=True) for name, regressor in regressors.items()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fit_time</th>\n",
       "      <th>score_time</th>\n",
       "      <th>test_score</th>\n",
       "      <th>train_score</th>\n",
       "      <th>std_test_score</th>\n",
       "      <th>std_train_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>XGBoost</th>\n",
       "      <td>2.125803</td>\n",
       "      <td>0.036285</td>\n",
       "      <td>0.821349</td>\n",
       "      <td>0.999903</td>\n",
       "      <td>0.059892</td>\n",
       "      <td>0.000018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>random forest</th>\n",
       "      <td>0.399689</td>\n",
       "      <td>0.030263</td>\n",
       "      <td>0.820534</td>\n",
       "      <td>0.971360</td>\n",
       "      <td>0.042079</td>\n",
       "      <td>0.002557</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>linear regression</th>\n",
       "      <td>0.094571</td>\n",
       "      <td>0.030287</td>\n",
       "      <td>0.725838</td>\n",
       "      <td>0.928608</td>\n",
       "      <td>0.174656</td>\n",
       "      <td>0.004207</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>decision tree</th>\n",
       "      <td>0.131873</td>\n",
       "      <td>0.026532</td>\n",
       "      <td>0.685167</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.053411</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   fit_time  score_time  test_score  train_score  \\\n",
       "XGBoost            2.125803    0.036285    0.821349     0.999903   \n",
       "random forest      0.399689    0.030263    0.820534     0.971360   \n",
       "linear regression  0.094571    0.030287    0.725838     0.928608   \n",
       "decision tree      0.131873    0.026532    0.685167     1.000000   \n",
       "\n",
       "                   std_test_score  std_train_score  \n",
       "XGBoost                  0.059892         0.000018  \n",
       "random forest            0.042079         0.002557  \n",
       "linear regression        0.174656         0.004207  \n",
       "decision tree            0.053411         0.000000  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results_df = pd.DataFrame(results_dict).T.sort_values(by=[\"test_score\"], ascending=False)\n",
    "results_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's try averaging:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "averaging_model = VotingRegressor(list(regressors.items()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "averaging_model.fit(X_train, y_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "fit_time           2.051922\n",
       "score_time         0.107451\n",
       "test_score         0.840484\n",
       "train_score        0.990523\n",
       "std_test_score     0.047923\n",
       "std_train_score    0.000306\n",
       "dtype: float64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_validate_std(averaging_model, X_train, y_train, return_train_score=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at how the predictions are generated:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "227106.79277562269"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "averaging_model.predict(X_test[:1])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Prediction</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>linear regression</th>\n",
       "      <td>222545.436727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>decision tree</th>\n",
       "      <td>228000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>random forest</th>\n",
       "      <td>229680.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>XGBoost</th>\n",
       "      <td>228201.734375</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Prediction\n",
       "linear regression  222545.436727\n",
       "decision tree      228000.000000\n",
       "random forest      229680.000000\n",
       "XGBoost            228201.734375"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r = {name : regressor.predict(X_test[:1])[0] for name, regressor in averaging_model.named_estimators_.items()}\n",
    "r = pd.DataFrame(r, index=[\"Prediction\"]).T\n",
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Prediction    227106.792776\n",
       "dtype: float64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Note the prediction above is exactly the average of these 4 predictions. \n",
    "- Contrast with hard/soft voting from the classification case."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For Stacking, our meta-model is now `Ridge` instead of `LogisticRegression` by default:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "stacking_model = StackingRegressor(list(regressors.items()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "stacking_model.fit(X_train, y_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "fit_time           12.128206\n",
       "score_time          0.097889\n",
       "test_score          0.809692\n",
       "train_score         0.989974\n",
       "std_test_score      0.075362\n",
       "std_train_score     0.011673\n",
       "dtype: float64"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross_validate_std(stacking_model, X_train, y_train, return_train_score=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Above: this appears to do worse, but the std is very high, presumably due to the very small dataset.\n",
    "- We should probably (at least) do a lot more folds if we want to feel more confident."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As with classification, we can again look at the coefficients of the meta-model, because it's still a linear model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "#??StackingRegressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>linear regression</th>\n",
       "      <td>0.177056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>decision tree</th>\n",
       "      <td>0.090237</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>random forest</th>\n",
       "      <td>0.332716</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>XGBoost</th>\n",
       "      <td>0.420650</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   Coefficient\n",
       "linear regression     0.177056\n",
       "decision tree         0.090237\n",
       "random forest         0.332716\n",
       "XGBoost               0.420650"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame(data=stacking_model.final_estimator_.coef_, index=regressors.keys(), columns=[\"Coefficient\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Here, we see it trusts XGBoost and the random forest much more than the decision tree or linear regression.\n",
    "- This makes sense based on the scores (repeated below):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fit_time</th>\n",
       "      <th>score_time</th>\n",
       "      <th>test_score</th>\n",
       "      <th>train_score</th>\n",
       "      <th>std_test_score</th>\n",
       "      <th>std_train_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>XGBoost</th>\n",
       "      <td>2.125803</td>\n",
       "      <td>0.036285</td>\n",
       "      <td>0.821349</td>\n",
       "      <td>0.999903</td>\n",
       "      <td>0.059892</td>\n",
       "      <td>0.000018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>random forest</th>\n",
       "      <td>0.399689</td>\n",
       "      <td>0.030263</td>\n",
       "      <td>0.820534</td>\n",
       "      <td>0.971360</td>\n",
       "      <td>0.042079</td>\n",
       "      <td>0.002557</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>linear regression</th>\n",
       "      <td>0.094571</td>\n",
       "      <td>0.030287</td>\n",
       "      <td>0.725838</td>\n",
       "      <td>0.928608</td>\n",
       "      <td>0.174656</td>\n",
       "      <td>0.004207</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>decision tree</th>\n",
       "      <td>0.131873</td>\n",
       "      <td>0.026532</td>\n",
       "      <td>0.685167</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.053411</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   fit_time  score_time  test_score  train_score  \\\n",
       "XGBoost            2.125803    0.036285    0.821349     0.999903   \n",
       "random forest      0.399689    0.030263    0.820534     0.971360   \n",
       "linear regression  0.094571    0.030287    0.725838     0.928608   \n",
       "decision tree      0.131873    0.026532    0.685167     1.000000   \n",
       "\n",
       "                   std_test_score  std_train_score  \n",
       "XGBoost                  0.059892         0.000018  \n",
       "random forest            0.042079         0.002557  \n",
       "linear regression        0.174656         0.004207  \n",
       "decision tree            0.053411         0.000000  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- In classification, stacking used `predict_proba` to get numerical inputs to the meta-model.\n",
    "- Here, we don't have `predict_proba` (more on this below), but the output is already numeric.\n",
    "- So it just uses the output of `predict`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prediction intervals (20 min)\n",
    "\n",
    "- With classification we had `predict` and `predict_proba`.\n",
    "- For regression we don't have `predica_proba`.\n",
    "- But it would be useful to still have some measure of confidence. \n",
    "- Some regressors can give us **prediction intervals**, which are like a range for the prediction."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### We're not taking a formal statistical approach\n",
    "\n",
    "- If you have studied statistics, you maybe have encountered the idea of prediction intervals.\n",
    "- There are actually a few variants of intervals here\n",
    "  - Confidence intervals (for parameter estimates)\n",
    "  - Confidence intervals for prediction (for predictions)\n",
    "  - Prediction intervals (for predictions, also take into account uncertainty in data)\n",
    "- We're not going to get into any of this in the course.\n",
    "- We'll just use the term \"prediction interval\" to mean an interval expressing a range of possible values.\n",
    "- This is similar to how we didn't interpret the output of `predict_proba` as a probability with any statistical meaning.\n",
    "- Both may be affected by hyperparameters."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Bootstrapping\n",
    "\n",
    "- It is possible to generate prediction intervals in a statistically reasonable way through the use of bootstrapping.\n",
    "- Essentially, this means training your model on different variants of the dataset (sampled with replacement).\n",
    "- We won't go into that in this course, but FYI.\n",
    "- Also FYI that random forests are already ensembles built using this method."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Ensemble prediction intervals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "227106.79277562269"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "averaging_model.predict(X_test[:1])[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Prediction</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>linear regression</th>\n",
       "      <td>222545.436727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>decision tree</th>\n",
       "      <td>228000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>random forest</th>\n",
       "      <td>229680.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>XGBoost</th>\n",
       "      <td>228201.734375</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Prediction\n",
       "linear regression  222545.436727\n",
       "decision tree      228000.000000\n",
       "random forest      229680.000000\n",
       "XGBoost            228201.734375"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Prediction    222545.436727\n",
       "dtype: float64"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Prediction    229680.0\n",
       "dtype: float64"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.max()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- So, one crude way to generate an interval is to say the prediction is somewhere between \\\\$215k and \\\\$229k. \n",
    "- If you had more models you could also take the standard deviation of the predictions and use that as an interval.\n",
    "- There's no statistical underpinning here. \n",
    "- I'm not a big fan but it does give you a range of values."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Quantile regression\n",
    "\n",
    "- Quantile regression is regression using a different type of error metric.\n",
    "- Instead of trying to minimize an error like MSE, we say, **we want the true value to be below the predicted value X% of the time.**\n",
    "- You can use this to get prediction intervals by training two models at two different quantiles, e.g. 10% and 90%.\n",
    "- We won't go into the math here, but some cases this is available in standard tools.\n",
    "- E.g. sklearn `GradientBoostingRegressor` or the lightGBM `LGBMRegressor` (we'll use this)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "lgbm = make_pipeline(preprocessing, LGBMRegressor())\n",
    "lgbm.fit(X_train, y_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def scatter_results(regressor, X, y, alpha=0.3):\n",
    "    plt.scatter(y, regressor.predict(X), alpha=alpha)\n",
    "    grid = np.linspace(y.min(), y.max(), 1000)\n",
    "    plt.plot(grid, grid, '--k');\n",
    "    plt.xlabel(\"true price\");\n",
    "    plt.ylabel(\"predicted price\");\n",
    "\n",
    "scatter_results(lgbm, X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- (First off, this looks way better that linear regression from last time)\n",
    "- Notice how the points tend to fall on both sides of the line.\n",
    "- When we create the regressor we can set it to quantile regression - watch this!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "lgbm_90 = make_pipeline(preprocessing, LGBMRegressor(objective='quantile', alpha=0.9))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I apologize on behalf of the universe - this is a completely different `alpha` from the `Ridge(alpha=...)` "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "lgbm_90.fit(X_train, y_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scatter_results(lgbm_90, X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- This did what we asked! The true value is below the predicted value 90% of the time.\n",
    "- Put another way, this made the predictions larger.\n",
    "- Note the analogy to `class_weight` here!\n",
    "  - We can \"fudge\" the predictions.\n",
    "  - This is legitimately useful, it's not \"wrong\".\n",
    "  - We were fudging `predict_proba` for classification and `predict` for regression.\n",
    "  - Our reasons for doing this are very different though (class imbalance vs. wanting prediction intervals)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lgbm_10 = make_pipeline(preprocessing, LGBMRegressor(objective='quantile', alpha=0.1)).fit(X_train, y_train);\n",
    "scatter_results(lgbm_10, X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Yikes, those are pretty hardcore changes here.\n",
    "  - Outliers are complicated (see a later lecture).\n",
    "- We can use `lgbm_90` and `lgbm_10` to get us prediction intervals."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>...</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9505</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "Id                                                                     \n",
       "148          60       RL          NaN     9505   Pave   NaN      IR1   \n",
       "\n",
       "    LandContour Utilities LotConfig  ... ScreenPorch PoolArea PoolQC Fence  \\\n",
       "Id                                   ...                                     \n",
       "148         Lvl    AllPub   CulDSac  ...           0        0    NaN   NaN   \n",
       "\n",
       "    MiscFeature MiscVal  MoSold  YrSold  SaleType  SaleCondition  \n",
       "Id                                                                \n",
       "148         NaN       0       5    2010        WD         Normal  \n",
       "\n",
       "[1 rows x 79 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test[:1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([225147.06958953])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lgbm.predict(X_test[:1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([211248.39402167])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lgbm_10.predict(X_test[:1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([223954.89941099])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lgbm_90.predict(X_test[:1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- This is a bit weird because our bounds are both below the prediction.\n",
    "- To avoid this, we can use the 50% quantile as our prediction instead of the default (which is like the mean);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "lgbm_50 = make_pipeline(preprocessing, LGBMRegressor(objective='quantile', alpha=0.5)).fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([219877.12985757])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lgbm_50.predict(X_test[:1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- There we go, our prediction is \\\\$222k, with a range from \\\\$211k to \\\\$224.5k .\n",
    "- Note that the interval is not necessarily symmetric (error bar below is much larger than above)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's make some plots using our 3 models, on the first 20 test cases:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_intervals(mid, low, hi, X, y):\n",
    "    mid_pred = mid.predict(X)\n",
    "    plt.plot(np.vstack((y, y)), np.vstack((low.predict(X), hi.predict(X))), 'b');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scatter_results(lgbm_50, X_test[:20], y_test[:20], alpha=1)\n",
    "plot_intervals(lgbm_50, lgbm_10, lgbm_90, X_test[:20], y_test[:20])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- What do you think of the size of the errorbars? \n",
    "  - They look fairly reasonable to me. \n",
    "  - The truth is contained inside the errorbars most of the time.\n",
    "  - The decision here is domain specific - again a human factor.\n",
    "- But you could try smaller intervals using, say, 0.75 and 0.25 instead of 0.9 and 0.1:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "lgbm_25 = make_pipeline(preprocessing, LGBMRegressor(objective='quantile', alpha=0.25)).fit(X_train, y_train);\n",
    "lgbm_75 = make_pipeline(preprocessing, LGBMRegressor(objective='quantile', alpha=0.75)).fit(X_train, y_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scatter_results(lgbm_50, X_test[:20], y_test[:20], alpha=1)\n",
    "plot_intervals(lgbm_50, lgbm_25, lgbm_75, X_test[:20], y_test[:20])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Break (5 min)\n",
    "\n",
    "<br><br><br>\n",
    "\n",
    "Reminder: resume recording"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Feature importances: linear regression (30 min)\n",
    "\n",
    "- Like logistic regression, with linear regression we can look at the _coefficients_ for each feature.\n",
    "- Overall idea: predicted price = intercept + $\\sum_i$ coefficient i $\\times$ feature i.\n",
    "- Let's first train on the un-logged data, for simplicity:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr = make_pipeline(preprocessing, Ridge())\n",
    "lr.fit(X_train, y_train);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LotFrontage</th>\n",
       "      <td>-1767.456662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LotArea</th>\n",
       "      <td>3729.004619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OverallQual</th>\n",
       "      <td>11339.337165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OverallCond</th>\n",
       "      <td>5202.941536</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YearBuilt</th>\n",
       "      <td>3083.309848</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <td>-485.725259</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MasVnrArea</th>\n",
       "      <td>2882.726678</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <td>3656.124574</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <td>1323.411865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <td>-1796.591359</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <td>2518.322957</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1stFlrSF</th>\n",
       "      <td>6655.322544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2ndFlrSF</th>\n",
       "      <td>13808.621133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LowQualFinSF</th>\n",
       "      <td>-739.806972</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GrLivArea</th>\n",
       "      <td>15987.617196</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFullBath</th>\n",
       "      <td>2168.270854</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtHalfBath</th>\n",
       "      <td>848.721424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FullBath</th>\n",
       "      <td>2253.537128</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HalfBath</th>\n",
       "      <td>1134.195956</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TotRmsAbvGrd</th>\n",
       "      <td>5255.092779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fireplaces</th>\n",
       "      <td>3161.432113</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <td>-894.673391</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageCars</th>\n",
       "      <td>9776.532771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageArea</th>\n",
       "      <td>-1768.733159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WoodDeckSF</th>\n",
       "      <td>1760.454734</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OpenPorchSF</th>\n",
       "      <td>177.898930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>EnclosedPorch</th>\n",
       "      <td>-600.239672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3SsnPorch</th>\n",
       "      <td>1366.803711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ScreenPorch</th>\n",
       "      <td>1436.701905</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PoolArea</th>\n",
       "      <td>6422.128946</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Coefficient\n",
       "LotFrontage    -1767.456662\n",
       "LotArea         3729.004619\n",
       "OverallQual    11339.337165\n",
       "OverallCond     5202.941536\n",
       "YearBuilt       3083.309848\n",
       "YearRemodAdd    -485.725259\n",
       "MasVnrArea      2882.726678\n",
       "BsmtFinSF1      3656.124574\n",
       "BsmtFinSF2      1323.411865\n",
       "BsmtUnfSF      -1796.591359\n",
       "TotalBsmtSF     2518.322957\n",
       "1stFlrSF        6655.322544\n",
       "2ndFlrSF       13808.621133\n",
       "LowQualFinSF    -739.806972\n",
       "GrLivArea      15987.617196\n",
       "BsmtFullBath    2168.270854\n",
       "BsmtHalfBath     848.721424\n",
       "FullBath        2253.537128\n",
       "HalfBath        1134.195956\n",
       "TotRmsAbvGrd    5255.092779\n",
       "Fireplaces      3161.432113\n",
       "GarageYrBlt     -894.673391\n",
       "GarageCars      9776.532771\n",
       "GarageArea     -1768.733159\n",
       "WoodDeckSF      1760.454734\n",
       "OpenPorchSF      177.898930\n",
       "EnclosedPorch   -600.239672\n",
       "3SsnPorch       1366.803711\n",
       "ScreenPorch     1436.701905\n",
       "PoolArea        6422.128946"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs = pd.DataFrame(data=lr[1].coef_, index=new_columns, columns=[\"Coefficient\"])\n",
    "lr_coefs.head(30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-121873.05137512289"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr[1].intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>PoolArea</th>\n",
       "      <td>6422.128946</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LotFrontage</th>\n",
       "      <td>-1767.456662</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Coefficient\n",
       "PoolArea     6422.128946\n",
       "LotFrontage -1767.456662"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.loc[[\"PoolArea\", \"LotFrontage\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Intuition: \n",
    "\n",
    "- **Increasing** `PoolArea` by 1 scaled unit **increases** the predicted price by $\\sim\\$6400$.\n",
    "- **Increasing** `LotFrontage` by 1 scaled unit **decreases** the predicted price by $\\sim\\$1800$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Does that seem reasonable?\n",
    "\n",
    "- For `PoolArea`, yes. \n",
    "- For `LotFrontage`, that's surprising - I expected something positive.\n",
    "- Do we believe these interpretations??\n",
    "  - Do we believe this is how the predictions are being computed? Yes.\n",
    "  - Do we believe that this is how the world works? No. \n",
    "  - For more info, take STAT 306.\n",
    "\n",
    "As an example, maybe the problem is that `LotFrontage` and `LotArea` are very correlated. `LotArea` has a larger positive coefficient. So maybe the overall interpretation is that big lots are good, but narrower lots (small frontage) are also good. This is probably not correct either! But it's an example of the ambiguities here. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.heatmap(X_train_enc[numeric_features[:5]].corr());"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "BTW, let's make sure the predictions behave as expected:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "one_example = X_test[:1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>...</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9505</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "Id                                                                     \n",
       "148          60       RL          NaN     9505   Pave   NaN      IR1   \n",
       "\n",
       "    LandContour Utilities LotConfig  ... ScreenPorch PoolArea PoolQC Fence  \\\n",
       "Id                                   ...                                     \n",
       "148         Lvl    AllPub   CulDSac  ...           0        0    NaN   NaN   \n",
       "\n",
       "    MiscFeature MiscVal  MoSold  YrSold  SaleType  SaleCondition  \n",
       "Id                                                                \n",
       "148         NaN       0       5    2010        WD         Normal  \n",
       "\n",
       "[1 rows x 79 columns]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "one_example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([222545.43672749])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.predict(one_example)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "one_example_perturbed = one_example.copy()\n",
    "one_example_perturbed[\"LotArea\"] += 1 # add 1 to the LotArea"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>...</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9506</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 79 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "Id                                                                     \n",
       "148          60       RL          NaN     9506   Pave   NaN      IR1   \n",
       "\n",
       "    LandContour Utilities LotConfig  ... ScreenPorch PoolArea PoolQC Fence  \\\n",
       "Id                                   ...                                     \n",
       "148         Lvl    AllPub   CulDSac  ...           0        0    NaN   NaN   \n",
       "\n",
       "    MiscFeature MiscVal  MoSold  YrSold  SaleType  SaleCondition  \n",
       "Id                                                                \n",
       "148         NaN       0       5    2010        WD         Normal  \n",
       "\n",
       "[1 rows x 79 columns]"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "one_example_perturbed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([222545.82613608])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.predict(one_example_perturbed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.38940859])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr.predict(one_example_perturbed) - lr.predict(one_example)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LotArea</th>\n",
       "      <td>3729.004619</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Coefficient\n",
       "LotArea  3729.004619"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.loc[[\"LotArea\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Why did the prediction only go up by \\\\$0.39 instead of \\\\$3729? \n",
    "\n",
    "<br><br><br>\n",
    "\n",
    "- This is an issue of units. `LotArea` is in sqft, but the coefficient is not $\\$3729/\\text{sqft}$ **because we scaled the features**. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "scaler = preprocessing.named_transformers_['numeric']['standardscaler']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- The scaler subtracted the mean and divided by the standard deviation.\n",
    "- For the unit conversion, we don't care about the subtraction, but only the scaling."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2.13745654e+01, 9.57607182e+03, 1.40580964e+00, 1.13370232e+00,\n",
       "       3.05509964e+01, 2.06956049e+01, 1.78076438e+02, 4.66876060e+02,\n",
       "       1.66176985e+02, 4.41525194e+02, 4.50155639e+02, 3.96458799e+02,\n",
       "       4.36894658e+02, 4.96007198e+01, 5.40091680e+02, 5.18546179e-01,\n",
       "       2.28010762e-01, 5.52851701e-01, 5.05102919e-01, 1.64938080e+00,\n",
       "       6.36310176e-01, 2.43294905e+01, 7.47247404e-01, 2.11907054e+02,\n",
       "       1.28562065e+02, 6.60750501e+01, 6.04084478e+01, 2.71546081e+01,\n",
       "       5.60163794e+01, 4.29887479e+01, 3.00279273e+02, 1.33190203e+00])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sqrt(scaler.var_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Scale</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LotFrontage</th>\n",
       "      <td>21.374565</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LotArea</th>\n",
       "      <td>9576.071818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OverallQual</th>\n",
       "      <td>1.405810</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OverallCond</th>\n",
       "      <td>1.133702</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YearBuilt</th>\n",
       "      <td>30.550996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <td>20.695605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MasVnrArea</th>\n",
       "      <td>178.076438</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <td>466.876060</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <td>166.176985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <td>441.525194</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <td>450.155639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1stFlrSF</th>\n",
       "      <td>396.458799</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2ndFlrSF</th>\n",
       "      <td>436.894658</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LowQualFinSF</th>\n",
       "      <td>49.600720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GrLivArea</th>\n",
       "      <td>540.091680</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFullBath</th>\n",
       "      <td>0.518546</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtHalfBath</th>\n",
       "      <td>0.228011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FullBath</th>\n",
       "      <td>0.552852</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HalfBath</th>\n",
       "      <td>0.505103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TotRmsAbvGrd</th>\n",
       "      <td>1.649381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fireplaces</th>\n",
       "      <td>0.636310</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <td>24.329491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageCars</th>\n",
       "      <td>0.747247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageArea</th>\n",
       "      <td>211.907054</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WoodDeckSF</th>\n",
       "      <td>128.562065</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OpenPorchSF</th>\n",
       "      <td>66.075050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>EnclosedPorch</th>\n",
       "      <td>60.408448</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3SsnPorch</th>\n",
       "      <td>27.154608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ScreenPorch</th>\n",
       "      <td>56.016379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PoolArea</th>\n",
       "      <td>42.988748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MiscVal</th>\n",
       "      <td>300.279273</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YrSold</th>\n",
       "      <td>1.331902</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     Scale\n",
       "LotFrontage      21.374565\n",
       "LotArea        9576.071818\n",
       "OverallQual       1.405810\n",
       "OverallCond       1.133702\n",
       "YearBuilt        30.550996\n",
       "YearRemodAdd     20.695605\n",
       "MasVnrArea      178.076438\n",
       "BsmtFinSF1      466.876060\n",
       "BsmtFinSF2      166.176985\n",
       "BsmtUnfSF       441.525194\n",
       "TotalBsmtSF     450.155639\n",
       "1stFlrSF        396.458799\n",
       "2ndFlrSF        436.894658\n",
       "LowQualFinSF     49.600720\n",
       "GrLivArea       540.091680\n",
       "BsmtFullBath      0.518546\n",
       "BsmtHalfBath      0.228011\n",
       "FullBath          0.552852\n",
       "HalfBath          0.505103\n",
       "TotRmsAbvGrd      1.649381\n",
       "Fireplaces        0.636310\n",
       "GarageYrBlt      24.329491\n",
       "GarageCars        0.747247\n",
       "GarageArea      211.907054\n",
       "WoodDeckSF      128.562065\n",
       "OpenPorchSF      66.075050\n",
       "EnclosedPorch    60.408448\n",
       "3SsnPorch        27.154608\n",
       "ScreenPorch      56.016379\n",
       "PoolArea         42.988748\n",
       "MiscVal         300.279273\n",
       "YrSold            1.331902"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_scales = pd.DataFrame(data=np.sqrt(scaler.var_), index=numeric_features, columns=[\"Scale\"])\n",
    "lr_scales"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train[\"LotArea\"].std();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3729.00461925854"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.loc[\"LotArea\",\"Coefficient\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9576.071817790295"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_scales.loc[\"LotArea\",\"Scale\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.38940858947307044"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.loc[\"LotArea\",\"Coefficient\"]/lr_scales.loc[\"LotArea\",\"Scale\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- It seems like `PoolArea` was divided by 43 sqft. \n",
    "- So $3729 \\; \\text{\\$/unit} \\times \\frac{1 \\text{unit}}{43 \\text{sqft}} \\approx 149 \\; \\text{\\$/sqft}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "149.39092800873365"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.loc[\"PoolArea\",\"Coefficient\"]/lr_scales.loc[\"PoolArea\",\"Scale\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- That makes a bit more sense!\n",
    "  - (But, again, don't read too much into this number without statistical training!)\n",
    "- Note: we can get the same result using the scaler's `inverse_transform` function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Scale</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3SsnPorch</th>\n",
       "      <td>27.154608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ScreenPorch</th>\n",
       "      <td>56.016379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PoolArea</th>\n",
       "      <td>42.988748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MiscVal</th>\n",
       "      <td>300.279273</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YrSold</th>\n",
       "      <td>1.331902</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Scale\n",
       "3SsnPorch     27.154608\n",
       "ScreenPorch   56.016379\n",
       "PoolArea      42.988748\n",
       "MiscVal      300.279273\n",
       "YrSold         1.331902"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "delta = scaler.inverse_transform(np.ones(len(numeric_features))) - scaler.inverse_transform(np.zeros(len(numeric_features)))\n",
    "lr_scales2 = pd.DataFrame(data=delta, index=numeric_features, columns=[\"Scale\"])\n",
    "lr_scales2.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Actually `inverse_transform` is nicer in a way, because it generalized to any sort of scaler/normalizer you're using."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- What about the categorical features?\n",
    "- We didn't scale these, so we can interpret the coefficients without this concern.\n",
    "- The ordinal features are easiest:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['ExterQual', 'ExterCond', 'BsmtQual', 'BsmtCond', 'HeatingQC', 'KitchenQual', 'FireplaceQu', 'GarageQual', 'GarageCond', 'PoolQC']\n"
     ]
    }
   ],
   "source": [
    "print(ordinal_features_reg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5941.941090670965"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.loc[\"ExterQual\", 'Coefficient']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- \"Increasing by one category of exterior quality (e.g. good -> excellent) increases the predicted price by \\\\$5942\".\n",
    "  - Wow, that's a lot! "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- The OHE features are a bit more of a hassle."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['BldgType', 'Condition1', 'KitchenAbvGr', 'HouseStyle', 'RoofStyle', 'SaleCondition', 'MSSubClass', 'RoofMatl', 'LandSlope', 'Heating', 'LandContour', 'Exterior1st', 'LotShape', 'Foundation', 'Exterior2nd', 'MSZoning', 'BsmtFinType2', 'MasVnrType', 'CentralAir', 'GarageFinish', 'MoSold', 'MiscFeature', 'PavedDrive', 'BsmtExposure', 'LotConfig', 'Neighborhood', 'BedroomAbvGr', 'GarageType', 'Condition2', 'SaleType', 'Fence', 'BsmtFinType1', 'Utilities', 'Functional', 'Street', 'Electrical', 'Alley']\n"
     ]
    }
   ],
   "source": [
    "print(categorical_features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LandSlope_Gtl</th>\n",
       "      <td>-6474.202721</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LandSlope_Mod</th>\n",
       "      <td>7138.195339</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LandSlope_Sev</th>\n",
       "      <td>-663.992618</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               Coefficient\n",
       "LandSlope_Gtl -6474.202721\n",
       "LandSlope_Mod  7138.195339\n",
       "LandSlope_Sev  -663.992618"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs_landslope = lr_coefs[lr_coefs.index.str.startswith(\"LandSlope\")]\n",
    "lr_coefs_landslope"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- We can talk about switching from one of these categories to another by picking a \"reference\" category:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LandSlope_Gtl</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LandSlope_Mod</th>\n",
       "      <td>13612.398061</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LandSlope_Sev</th>\n",
       "      <td>5810.210103</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Coefficient\n",
       "LandSlope_Gtl      0.000000\n",
       "LandSlope_Mod  13612.398061\n",
       "LandSlope_Sev   5810.210103"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs_landslope - lr_coefs_landslope.loc[\"LandSlope_Gtl\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Be a bit careful here:\n",
    "\n",
    "- If you did `drop='first'` (we didn't) then you already have a reference class, and all the values are with respect to that one.\n",
    "- The interpretation depends on whether we did `drop='first'`, hence the hassle."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's sort the coefficients:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RoofMatl_ClyTile</th>\n",
       "      <td>-176003.848493</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Condition2_PosN</th>\n",
       "      <td>-98557.151215</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Heating_OthW</th>\n",
       "      <td>-24564.135444</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MSZoning_C (all)</th>\n",
       "      <td>-21587.735117</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BedroomAbvGr_5</th>\n",
       "      <td>-20582.490457</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Exterior2nd_ImStucc</th>\n",
       "      <td>36710.313710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_CompShg</th>\n",
       "      <td>38863.951982</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Condition2_PosA</th>\n",
       "      <td>39891.544500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Neighborhood_NridgHt</th>\n",
       "      <td>45871.062263</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_WdShngl</th>\n",
       "      <td>83958.025531</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>292 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                        Coefficient\n",
       "RoofMatl_ClyTile     -176003.848493\n",
       "Condition2_PosN       -98557.151215\n",
       "Heating_OthW          -24564.135444\n",
       "MSZoning_C (all)      -21587.735117\n",
       "BedroomAbvGr_5        -20582.490457\n",
       "...                             ...\n",
       "Exterior2nd_ImStucc    36710.313710\n",
       "RoofMatl_CompShg       38863.951982\n",
       "Condition2_PosA        39891.544500\n",
       "Neighborhood_NridgHt   45871.062263\n",
       "RoofMatl_WdShngl       83958.025531\n",
       "\n",
       "[292 rows x 1 columns]"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs.sort_values(by=\"Coefficient\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- \"If the roof is made of clay or tile, the predicted price is \\\\$176k less\" ?\n",
    "- That is a huge amount!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RoofMatl_ClyTile</th>\n",
       "      <td>-176003.848493</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_CompShg</th>\n",
       "      <td>38863.951982</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_Membran</th>\n",
       "      <td>24572.916813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_Roll</th>\n",
       "      <td>11793.038384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_Tar&amp;Grv</th>\n",
       "      <td>3443.806372</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_WdShake</th>\n",
       "      <td>13372.109410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>RoofMatl_WdShngl</th>\n",
       "      <td>83958.025531</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    Coefficient\n",
       "RoofMatl_ClyTile -176003.848493\n",
       "RoofMatl_CompShg   38863.951982\n",
       "RoofMatl_Membran   24572.916813\n",
       "RoofMatl_Roll      11793.038384\n",
       "RoofMatl_Tar&Grv    3443.806372\n",
       "RoofMatl_WdShake   13372.109410\n",
       "RoofMatl_WdShngl   83958.025531"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_coefs_landslope = lr_coefs[lr_coefs.index.str.startswith(\"RoofMatl\")]\n",
    "lr_coefs_landslope"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Note to self: stay away from clay or tile.\n",
    "- Or, wait, can we actually believe that?\n",
    "  - Without further training: no."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Interpretation in log space\n",
    "\n",
    "- If we log-transform the targets then the interpretation changes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr_log = make_pipeline(preprocessing, Ridge())\n",
    "lr_log.fit(X_train, np.log(y_train));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>LotArea</th>\n",
       "      <td>0.013140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LotFrontage</th>\n",
       "      <td>-0.002005</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Coefficient\n",
       "LotArea         0.013140\n",
       "LotFrontage    -0.002005"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_log_coefs = pd.DataFrame(data=lr_log[1].coef_, index=new_columns, columns=[\"Coefficient\"])\n",
    "lr_log_coefs.loc[[\"LotArea\", \"LotFrontage\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- We keep the intuition that positive coefficients make the predicted price go up, negative coefficients make it go down.\n",
    "- If we increase `LotArea` by 1 scaled unit, then we increase the **log** predicted price by 0.013.\n",
    "- What does it mean to increase the log of something by $x$?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "log(new) = log(old) + $x$\n",
    "\n",
    "Take exp of both sides:\n",
    "\n",
    "new = old  $\\times \\exp(x)$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, increasing `LotArea` by 1 scaled unit means we _multiply_ the predicted price by $\\exp(0.013)$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.013226277022084"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(lr_log_coefs.loc[\"LotArea\", \"Coefficient\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And, increasing `LotFrontage` by 1 scaled unit means we _multiply_ the predicted price by $\\exp(-0.002)$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9979965338275385"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(lr_log_coefs.loc[\"LotFrontage\", \"Coefficient\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Advanced note) For those familiar with Taylor expansions, you will know that when $x$ is small then $\\exp(x)\\approx 1+x$, which is what you're seeing here. But in general we might have big coefficients and this approximation is not helpful to think about."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's test this out!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "one_example = X_test[:1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([216017.19888138])"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(lr_log.predict(one_example))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9576.071817790295"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_scales.loc[\"LotArea\",\"Scale\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "one_example_perturbed = one_example.copy()\n",
    "one_example_perturbed[\"LotArea\"] += lr_scales.loc[\"LotArea\",\"Scale\"] # add 1 to the scaled LotArea"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([218874.30219532])"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(lr_log.predict(one_example_perturbed))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.01322628])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(lr_log.predict(one_example_perturbed)) / np.exp(lr_log.predict(one_example))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- So we can say something like, \"Increasing the lot area by ~10,000 sq ft causes the predicted price to go up by around 1.3%\".\n",
    "- Again, I am being careful to say \"predicted price\" instead of price, because we're just talking about our model, not the world."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Feature importances: beyond linear models (20 min)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "#### Why model interpretability? \n",
    "\n",
    "- Ability to interpret ML models is crucial in many applications such as banking, healthcare, and criminal justice.\n",
    "- It can be leveraged by domain experts to diagnose systematic errors and underlying biases of complex ML systems. \n",
    "- One problem is that often simple models are interpretable but not accurate.\n",
    "- But more complex models, like random forests, are less interpretable.\n",
    "- In this course, our definition of model iterpretability will be looking at feature importances.\n",
    "- There is more to interpretability than feature importances, but it's a good start!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "#### Model interpretability \n",
    "\n",
    "We will be looking at two ways of getting feature importances for non-linear models. \n",
    "  - sklearn `feature_importances_`\n",
    "  - [SHAP](https://github.com/slundberg/shap)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "rf = make_pipeline(preprocessing, RandomForestRegressor(random_state=111))\n",
    "rf.fit(X_train, np.log(y_train));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>OverallQual</th>\n",
       "      <td>0.544057</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GrLivArea</th>\n",
       "      <td>0.109479</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <td>0.052421</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageCars</th>\n",
       "      <td>0.049012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1stFlrSF</th>\n",
       "      <td>0.023216</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Importance\n",
       "OverallQual    0.544057\n",
       "GrLivArea      0.109479\n",
       "TotalBsmtSF    0.052421\n",
       "GarageCars     0.049012\n",
       "1stFlrSF       0.023216"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf_importances = pd.DataFrame(data=rf[1].feature_importances_, index=new_columns, columns=[\"Importance\"])\n",
    "rf_importances.sort_values(by=\"Importance\", ascending=False).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Unlike the linear model coefficients, `feature_importances_` do not have a sign!\n",
    "  - They tell us about importance, but not an \"up or down\".\n",
    "  - Indeed, increasing a feature may cause the prediction to first go up, and then go down.\n",
    "  - This cannot happen in linear models, because they are linear.\n",
    "  - ^ This is a key point!!\n",
    "- We could compare with the absolute value of the coefficients from Ridge:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr_tuned_log = make_pipeline(preprocessing, Ridge(alpha=100))\n",
    "lr_tuned_log.fit(X_train, np.log(y_train));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Coefficient</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>OverallQual</th>\n",
       "      <td>0.079477</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageCars</th>\n",
       "      <td>0.044766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GrLivArea</th>\n",
       "      <td>0.043596</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OverallCond</th>\n",
       "      <td>0.040942</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtQual</th>\n",
       "      <td>0.035982</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Coefficient\n",
       "OverallQual     0.079477\n",
       "GarageCars      0.044766\n",
       "GrLivArea       0.043596\n",
       "OverallCond     0.040942\n",
       "BsmtQual        0.035982"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_tuned_log_coefs = pd.DataFrame(data=lr_tuned_log[1].coef_, index=new_columns, columns=[\"Coefficient\"])\n",
    "lr_tuned_log_coefs.abs().sort_values(by=\"Coefficient\", ascending=False).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Both models agree that overall quality is by far the most important feature (makes sense!).\n",
    "- Note: we should not be comparing the actual numbers, e.g. 0.5 from random forest vs. 0.08 from linear regression."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- These values tell us globally about which features are important.\n",
    "- But what if you want to explain a _specific_ prediction. \n",
    "- Some fancier tools can help us do this."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### SHAP  (SHapley Additive exPlanations)\n",
    "\n",
    "- A sophisticated measure of the contribution of each feature.\n",
    "- For more detail, see [GitHub repo](https://github.com/slundberg/shap) and [paper](https://arxiv.org/pdf/1705.07874.pdf).\n",
    "- We won't go in details. You may refer to  if you are interested to know more. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Setting feature_perturbation = \"tree_path_dependent\" because no background data was given.\n"
     ]
    }
   ],
   "source": [
    "explainer = shap.TreeExplainer(rf[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- For both the linear regression coefficients and the random forest feature importances, these were the features _after preprocessing_.\n",
    "- We'll continue to do that below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train_enc = pd.DataFrame(preprocessing.transform(X_train), index=X_train.index, columns=new_columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1095, 292)"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_enc.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll compute the SHAP values on the training set (but could do it for other data):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "shap_values = explainer.shap_values(X_train_enc) # this takes a couple minutes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is just a numpy array:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1095, 292)"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shap_values.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div align='center'><img src='' /></div><script>!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=189)}([function(t,e,n){\"use strict\";function r(t,e,n,r,o,a,u,c){if(i(e),!t){var s;if(void 0===e)s=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[n,r,o,a,u,c],f=0;s=new Error(e.replace(/%s/g,function(){return l[f++]})),s.name=\"Invariant Violation\"}throw s.framesToPop=1,s}}var i=function(t){};t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e=arguments.length-1,n=\"Minified React error #\"+t+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=\"+t,r=0;r<e;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);n+=\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";var i=new Error(n);throw i.name=\"Invariant Violation\",i.framesToPop=1,i}t.exports=r},function(t,e,n){\"use strict\";var r=n(11),i=r;t.exports=i},function(t,e,n){\"use strict\";function r(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}/*\n",
       "object-assign\n",
       "(c) Sindre Sorhus\n",
       "@license MIT\n",
       "*/\n",
       "var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){r[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,u,c=r(t),s=1;s<arguments.length;s++){n=Object(arguments[s]);for(var l in n)o.call(n,l)&&(c[l]=n[l]);if(i){u=i(n);for(var f=0;f<u.length;f++)a.call(n,u[f])&&(c[u[f]]=n[u[f]])}}return c}},function(t,e,n){\"use strict\";function r(t,e){return 1===t.nodeType&&t.getAttribute(d)===String(e)||8===t.nodeType&&t.nodeValue===\" react-text: \"+e+\" \"||8===t.nodeType&&t.nodeValue===\" react-empty: \"+e+\" \"}function i(t){for(var e;e=t._renderedComponent;)t=e;return t}function o(t,e){var n=i(t);n._hostNode=e,e[g]=n}function a(t){var e=t._hostNode;e&&(delete e[g],t._hostNode=null)}function u(t,e){if(!(t._flags&v.hasCachedChildNodes)){var n=t._renderedChildren,a=e.firstChild;t:for(var u in n)if(n.hasOwnProperty(u)){var c=n[u],s=i(c)._domID;if(0!==s){for(;null!==a;a=a.nextSibling)if(r(a,s)){o(c,a);continue t}f(\"32\",s)}}t._flags|=v.hasCachedChildNodes}}function c(t){if(t[g])return t[g];for(var e=[];!t[g];){if(e.push(t),!t.parentNode)return null;t=t.parentNode}for(var n,r;t&&(r=t[g]);t=e.pop())n=r,e.length&&u(r,t);return n}function s(t){var e=c(t);return null!=e&&e._hostNode===t?e:null}function l(t){if(void 0===t._hostNode&&f(\"33\"),t._hostNode)return t._hostNode;for(var e=[];!t._hostNode;)e.push(t),t._hostParent||f(\"34\"),t=t._hostParent;for(;e.length;t=e.pop())u(t,t._hostNode);return t._hostNode}var f=n(1),p=n(21),h=n(161),d=(n(0),p.ID_ATTRIBUTE_NAME),v=h,g=\"__reactInternalInstance$\"+Math.random().toString(36).slice(2),m={getClosestInstanceFromNode:c,getInstanceFromNode:s,getNodeFromInstance:l,precacheChildNodes:u,precacheNode:o,uncacheNode:a};t.exports=m},function(t,e,n){\"use strict\";function r(t,e,n,a){function u(e){return t(e=new Date(+e)),e}return u.floor=u,u.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},u.round=function(t){var e=u(t),n=u.ceil(t);return t-e<n-t?e:n},u.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},u.range=function(n,r,i){var o,a=[];if(n=u.ceil(n),i=null==i?1:Math.floor(i),!(n<r&&i>0))return a;do{a.push(o=new Date(+n)),e(n,i),t(n)}while(o<n&&n<r);return a},u.filter=function(n){return r(function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););})},n&&(u.count=function(e,r){return i.setTime(+e),o.setTime(+r),t(i),t(o),Math.floor(n(i,o))},u.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?u.filter(a?function(e){return a(e)%t==0}:function(e){return u.count(0,e)%t==0}):u:null}),u}e.a=r;var i=new Date,o=new Date},function(t,e,n){\"use strict\";var r=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:r,canUseWorkers:\"undefined\"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=i},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(101);n.d(e,\"bisect\",function(){return r.a}),n.d(e,\"bisectRight\",function(){return r.b}),n.d(e,\"bisectLeft\",function(){return r.c});var i=n(19);n.d(e,\"ascending\",function(){return i.a});var o=n(102);n.d(e,\"bisector\",function(){return o.a});var a=n(193);n.d(e,\"cross\",function(){return a.a});var u=n(194);n.d(e,\"descending\",function(){return u.a});var c=n(103);n.d(e,\"deviation\",function(){return c.a});var s=n(104);n.d(e,\"extent\",function(){return s.a});var l=n(195);n.d(e,\"histogram\",function(){return l.a});var f=n(205);n.d(e,\"thresholdFreedmanDiaconis\",function(){return f.a});var p=n(206);n.d(e,\"thresholdScott\",function(){return p.a});var h=n(108);n.d(e,\"thresholdSturges\",function(){return h.a});var d=n(197);n.d(e,\"max\",function(){return d.a});var v=n(198);n.d(e,\"mean\",function(){return v.a});var g=n(199);n.d(e,\"median\",function(){return g.a});var m=n(200);n.d(e,\"merge\",function(){return m.a});var y=n(105);n.d(e,\"min\",function(){return y.a});var _=n(106);n.d(e,\"pairs\",function(){return _.a});var b=n(201);n.d(e,\"permute\",function(){return b.a});var x=n(59);n.d(e,\"quantile\",function(){return x.a});var w=n(107);n.d(e,\"range\",function(){return w.a});var C=n(202);n.d(e,\"scan\",function(){return C.a});var k=n(203);n.d(e,\"shuffle\",function(){return k.a});var E=n(204);n.d(e,\"sum\",function(){return E.a});var M=n(109);n.d(e,\"ticks\",function(){return M.a}),n.d(e,\"tickIncrement\",function(){return M.b}),n.d(e,\"tickStep\",function(){return M.c});var T=n(110);n.d(e,\"transpose\",function(){return T.a});var S=n(111);n.d(e,\"variance\",function(){return S.a});var N=n(207);n.d(e,\"zip\",function(){return N.a})},function(t,e,n){\"use strict\";function r(t,e){this._groups=t,this._parents=e}function i(){return new r([[document.documentElement]],R)}n.d(e,\"c\",function(){return R}),e.b=r;var o=n(283),a=n(284),u=n(272),c=n(266),s=n(132),l=n(271),f=n(276),p=n(279),h=n(286),d=n(263),v=n(278),g=n(277),m=n(285),y=n(270),_=n(269),b=n(262),x=n(134),w=n(280),C=n(264),k=n(287),E=n(273),M=n(281),T=n(275),S=n(261),N=n(274),A=n(282),P=n(265),O=n(267),I=n(70),D=n(268),R=[null];r.prototype=i.prototype={constructor:r,select:o.a,selectAll:a.a,filter:u.a,data:c.a,enter:s.a,exit:l.a,merge:f.a,order:p.a,sort:h.a,call:d.a,nodes:v.a,node:g.a,size:m.a,empty:y.a,each:_.a,attr:b.a,style:x.b,property:w.a,classed:C.a,text:k.a,html:E.a,raise:M.a,lower:T.a,append:S.a,insert:N.a,remove:A.a,clone:P.a,datum:O.a,on:I.c,dispatch:D.a},e.a=i},function(t,e,n){\"use strict\";var r=null;t.exports={debugTool:r}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(61);n.d(e,\"color\",function(){return r.a}),n.d(e,\"rgb\",function(){return r.b}),n.d(e,\"hsl\",function(){return r.c});var i=n(218);n.d(e,\"lab\",function(){return i.a}),n.d(e,\"hcl\",function(){return i.b});var o=n(217);n.d(e,\"cubehelix\",function(){return o.a})},function(t,e,n){\"use strict\";function r(t){return function(){return t}}var i=function(){};i.thatReturns=r,i.thatReturnsFalse=r(!1),i.thatReturnsTrue=r(!0),i.thatReturnsNull=r(null),i.thatReturnsThis=function(){return this},i.thatReturnsArgument=function(t){return t},t.exports=i},function(t,e,n){\"use strict\";function r(){S.ReactReconcileTransaction&&w||l(\"123\")}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=p.getPooled(),this.reconcileTransaction=S.ReactReconcileTransaction.getPooled(!0)}function o(t,e,n,i,o,a){return r(),w.batchedUpdates(t,e,n,i,o,a)}function a(t,e){return t._mountOrder-e._mountOrder}function u(t){var e=t.dirtyComponentsLength;e!==y.length&&l(\"124\",e,y.length),y.sort(a),_++;for(var n=0;n<e;n++){var r=y[n],i=r._pendingCallbacks;r._pendingCallbacks=null;var o;if(d.logTopLevelRenders){var u=r;r._currentElement.type.isReactTopLevelWrapper&&(u=r._renderedComponent),o=\"React update: \"+u.getName(),console.time(o)}if(v.performUpdateIfNecessary(r,t.reconcileTransaction,_),o&&console.timeEnd(o),i)for(var c=0;c<i.length;c++)t.callbackQueue.enqueue(i[c],r.getPublicInstance())}}function c(t){if(r(),!w.isBatchingUpdates)return void w.batchedUpdates(c,t);y.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=_+1)}function s(t,e){m(w.isBatchingUpdates,\"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched.\"),b.enqueue(t,e),x=!0}var l=n(1),f=n(3),p=n(159),h=n(18),d=n(164),v=n(24),g=n(55),m=n(0),y=[],_=0,b=p.getPooled(),x=!1,w=null,C={initialize:function(){this.dirtyComponentsLength=y.length},close:function(){this.dirtyComponentsLength!==y.length?(y.splice(0,this.dirtyComponentsLength),M()):y.length=0}},k={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},E=[C,k];f(i.prototype,g,{getTransactionWrappers:function(){return E},destructor:function(){this.dirtyComponentsLength=null,p.release(this.callbackQueue),this.callbackQueue=null,S.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(t,e,n){return g.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,t,e,n)}}),h.addPoolingTo(i);var M=function(){for(;y.length||x;){if(y.length){var t=i.getPooled();t.perform(u,null,t),i.release(t)}if(x){x=!1;var e=b;b=p.getPooled(),e.notifyAll(),p.release(e)}}},T={injectReconcileTransaction:function(t){t||l(\"126\"),S.ReactReconcileTransaction=t},injectBatchingStrategy:function(t){t||l(\"127\"),\"function\"!=typeof t.batchedUpdates&&l(\"128\"),\"boolean\"!=typeof t.isBatchingUpdates&&l(\"129\"),w=t}},S={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:c,flushBatchedUpdates:M,injection:T,asap:s};t.exports=S},function(t,e,n){\"use strict\";n.d(e,\"e\",function(){return r}),n.d(e,\"d\",function(){return i}),n.d(e,\"c\",function(){return o}),n.d(e,\"b\",function(){return a}),n.d(e,\"a\",function(){return u});var r=1e3,i=6e4,o=36e5,a=864e5,u=6048e5},function(t,e,n){\"use strict\";function r(t,e,n,r){this.dispatchConfig=t,this._targetInst=e,this.nativeEvent=n;var i=this.constructor.Interface;for(var o in i)if(i.hasOwnProperty(o)){var u=i[o];u?this[o]=u(n):\"target\"===o?this.target=r:this[o]=n[o]}var c=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=c?a.thatReturnsTrue:a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse,this}var i=n(3),o=n(18),a=n(11),u=(n(2),[\"dispatchConfig\",\"_targetInst\",\"nativeEvent\",\"isDefaultPrevented\",\"isPropagationStopped\",\"_dispatchListeners\",\"_dispatchInstances\"]),c={type:null,target:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};i(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():\"unknown\"!=typeof t.returnValue&&(t.returnValue=!1),this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():\"unknown\"!=typeof t.cancelBubble&&(t.cancelBubble=!0),this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var t=this.constructor.Interface;for(var e in t)this[e]=null;for(var n=0;n<u.length;n++)this[u[n]]=null}}),r.Interface=c,r.augmentClass=function(t,e){var n=this,r=function(){};r.prototype=n.prototype;var a=new r;i(a,t.prototype),t.prototype=a,t.prototype.constructor=t,t.Interface=i({},n.Interface,e),t.augmentClass=n.augmentClass,o.addPoolingTo(t,o.fourArgumentPooler)},o.addPoolingTo(r,o.fourArgumentPooler),t.exports=r},function(t,e,n){\"use strict\";var r={current:null};t.exports=r},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i}),n.d(e,\"b\",function(){return o});var r=Array.prototype,i=r.map,o=r.slice},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(1),i=(n(0),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),o=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,t,e,n),i}return new r(t,e,n)},u=function(t,e,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,t,e,n,r),o}return new i(t,e,n,r)},c=function(t){var e=this;t instanceof e||r(\"25\"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},s=i,l=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||s,n.poolSize||(n.poolSize=10),n.release=c,n},f={addPoolingTo:l,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:a,fourArgumentPooler:u};t.exports=f},function(t,e,n){\"use strict\";e.a=function(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}},function(t,e,n){\"use strict\";function r(t){if(d){var e=t.node,n=t.children;if(n.length)for(var r=0;r<n.length;r++)v(e,n[r],null);else null!=t.html?f(e,t.html):null!=t.text&&h(e,t.text)}}function i(t,e){t.parentNode.replaceChild(e.node,t),r(e)}function o(t,e){d?t.children.push(e):t.node.appendChild(e.node)}function a(t,e){d?t.html=e:f(t.node,e)}function u(t,e){d?t.text=e:h(t.node,e)}function c(){return this.node.nodeName}function s(t){return{node:t,children:[],html:null,text:null,toString:c}}var l=n(83),f=n(57),p=n(91),h=n(176),d=\"undefined\"!=typeof document&&\"number\"==typeof document.documentMode||\"undefined\"!=typeof navigator&&\"string\"==typeof navigator.userAgent&&/\\bEdge\\/\\d/.test(navigator.userAgent),v=p(function(t,e,n){11===e.node.nodeType||1===e.node.nodeType&&\"object\"===e.node.nodeName.toLowerCase()&&(null==e.node.namespaceURI||e.node.namespaceURI===l.html)?(r(e),t.insertBefore(e.node,n)):(t.insertBefore(e.node,n),r(e))});s.insertTreeBefore=v,s.replaceChildWithTree=i,s.queueChild=o,s.queueHTML=a,s.queueText=u,t.exports=s},function(t,e,n){\"use strict\";function r(t,e){return(t&e)===e}var i=n(1),o=(n(0),{MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(t){var e=o,n=t.Properties||{},a=t.DOMAttributeNamespaces||{},c=t.DOMAttributeNames||{},s=t.DOMPropertyNames||{},l=t.DOMMutationMethods||{};t.isCustomAttribute&&u._isCustomAttributeFunctions.push(t.isCustomAttribute);for(var f in n){u.properties.hasOwnProperty(f)&&i(\"48\",f);var p=f.toLowerCase(),h=n[f],d={attributeName:p,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:r(h,e.MUST_USE_PROPERTY),hasBooleanValue:r(h,e.HAS_BOOLEAN_VALUE),hasNumericValue:r(h,e.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(h,e.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(h,e.HAS_OVERLOADED_BOOLEAN_VALUE)};if(d.hasBooleanValue+d.hasNumericValue+d.hasOverloadedBooleanValue<=1||i(\"50\",f),c.hasOwnProperty(f)){var v=c[f];d.attributeName=v}a.hasOwnProperty(f)&&(d.attributeNamespace=a[f]),s.hasOwnProperty(f)&&(d.propertyName=s[f]),l.hasOwnProperty(f)&&(d.mutationMethod=l[f]),u.properties[f]=d}}}),a=\":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",u={ID_ATTRIBUTE_NAME:\"data-reactid\",ROOT_ATTRIBUTE_NAME:\"data-reactroot\",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+\"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(t){for(var e=0;e<u._isCustomAttributeFunctions.length;e++){if((0,u._isCustomAttributeFunctions[e])(t))return!0}return!1},injection:o};t.exports=u},function(t,e,n){\"use strict\";function r(t){return\"button\"===t||\"input\"===t||\"select\"===t||\"textarea\"===t}function i(t,e,n){switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":return!(!n.disabled||!r(e));default:return!1}}var o=n(1),a=n(84),u=n(52),c=n(88),s=n(169),l=n(170),f=(n(0),{}),p=null,h=function(t,e){t&&(u.executeDispatchesInOrder(t,e),t.isPersistent()||t.constructor.release(t))},d=function(t){return h(t,!0)},v=function(t){return h(t,!1)},g=function(t){return\".\"+t._rootNodeID},m={injection:{injectEventPluginOrder:a.injectEventPluginOrder,injectEventPluginsByName:a.injectEventPluginsByName},putListener:function(t,e,n){\"function\"!=typeof n&&o(\"94\",e,typeof n);var r=g(t);(f[e]||(f[e]={}))[r]=n;var i=a.registrationNameModules[e];i&&i.didPutListener&&i.didPutListener(t,e,n)},getListener:function(t,e){var n=f[e];if(i(e,t._currentElement.type,t._currentElement.props))return null;var r=g(t);return n&&n[r]},deleteListener:function(t,e){var n=a.registrationNameModules[e];n&&n.willDeleteListener&&n.willDeleteListener(t,e);var r=f[e];if(r){delete r[g(t)]}},deleteAllListeners:function(t){var e=g(t);for(var n in f)if(f.hasOwnProperty(n)&&f[n][e]){var r=a.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(t,n),delete f[n][e]}},extractEvents:function(t,e,n,r){for(var i,o=a.plugins,u=0;u<o.length;u++){var c=o[u];if(c){var l=c.extractEvents(t,e,n,r);l&&(i=s(i,l))}}return i},enqueueEvents:function(t){t&&(p=s(p,t))},processEventQueue:function(t){var e=p;p=null,t?l(e,d):l(e,v),p&&o(\"95\"),c.rethrowCaughtError()},__purge:function(){f={}},__getListenerBank:function(){return f}};t.exports=m},function(t,e,n){\"use strict\";function r(t,e,n){var r=e.dispatchConfig.phasedRegistrationNames[n];return m(t,r)}function i(t,e,n){var i=r(t,n,e);i&&(n._dispatchListeners=v(n._dispatchListeners,i),n._dispatchInstances=v(n._dispatchInstances,t))}function o(t){t&&t.dispatchConfig.phasedRegistrationNames&&d.traverseTwoPhase(t._targetInst,i,t)}function a(t){if(t&&t.dispatchConfig.phasedRegistrationNames){var e=t._targetInst,n=e?d.getParentInstance(e):null;d.traverseTwoPhase(n,i,t)}}function u(t,e,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,i=m(t,r);i&&(n._dispatchListeners=v(n._dispatchListeners,i),n._dispatchInstances=v(n._dispatchInstances,t))}}function c(t){t&&t.dispatchConfig.registrationName&&u(t._targetInst,null,t)}function s(t){g(t,o)}function l(t){g(t,a)}function f(t,e,n,r){d.traverseEnterLeave(n,r,u,t,e)}function p(t){g(t,c)}var h=n(22),d=n(52),v=n(169),g=n(170),m=(n(2),h.getListener),y={accumulateTwoPhaseDispatches:s,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:p,accumulateEnterLeaveDispatches:f};t.exports=y},function(t,e,n){\"use strict\";function r(){i.attachRefs(this,this._currentElement)}var i=n(382),o=(n(9),n(2),{mountComponent:function(t,e,n,i,o,a){var u=t.mountComponent(e,n,i,o,a);return t._currentElement&&null!=t._currentElement.ref&&e.getReactMountReady().enqueue(r,t),u},getHostNode:function(t){return t.getHostNode()},unmountComponent:function(t,e){i.detachRefs(t,t._currentElement),t.unmountComponent(e)},receiveComponent:function(t,e,n,o){var a=t._currentElement;if(e!==a||o!==t._context){var u=i.shouldUpdateRefs(a,e);u&&i.detachRefs(t,a),t.receiveComponent(e,n,o),u&&t._currentElement&&null!=t._currentElement.ref&&n.getReactMountReady().enqueue(r,t)}},performUpdateIfNecessary:function(t,e,n){t._updateBatchNumber===n&&t.performUpdateIfNecessary(e)}});t.exports=o},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o=n(94),a={view:function(t){if(t.view)return t.view;var e=o(t);if(e.window===e)return e;var n=e.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(t){return t.detail||0}};i.augmentClass(r,a),t.exports=r},function(t,e,n){\"use strict\";var r=n(3),i=n(178),o=n(414),a=n(415),u=n(27),c=n(416),s=n(417),l=n(418),f=n(422),p=u.createElement,h=u.createFactory,d=u.cloneElement,v=r,g=function(t){return t},m={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:f},Component:i.Component,PureComponent:i.PureComponent,createElement:p,cloneElement:d,isValidElement:u.isValidElement,PropTypes:c,createClass:l,createFactory:h,createMixin:g,DOM:a,version:s,__spread:v};t.exports=m},function(t,e,n){\"use strict\";function r(t){return void 0!==t.ref}function i(t){return void 0!==t.key}var o=n(3),a=n(15),u=(n(2),n(182),Object.prototype.hasOwnProperty),c=n(180),s={key:!0,ref:!0,__self:!0,__source:!0},l=function(t,e,n,r,i,o,a){var u={$$typeof:c,type:t,key:e,ref:n,props:a,_owner:o};return u};l.createElement=function(t,e,n){var o,c={},f=null,p=null;if(null!=e){r(e)&&(p=e.ref),i(e)&&(f=\"\"+e.key),void 0===e.__self?null:e.__self,void 0===e.__source?null:e.__source;for(o in e)u.call(e,o)&&!s.hasOwnProperty(o)&&(c[o]=e[o])}var h=arguments.length-2;if(1===h)c.children=n;else if(h>1){for(var d=Array(h),v=0;v<h;v++)d[v]=arguments[v+2];c.children=d}if(t&&t.defaultProps){var g=t.defaultProps;for(o in g)void 0===c[o]&&(c[o]=g[o])}return l(t,f,p,0,0,a.current,c)},l.createFactory=function(t){var e=l.createElement.bind(null,t);return e.type=t,e},l.cloneAndReplaceKey=function(t,e){return l(t.type,e,t.ref,t._self,t._source,t._owner,t.props)},l.cloneElement=function(t,e,n){var c,f=o({},t.props),p=t.key,h=t.ref,d=(t._self,t._source,t._owner);if(null!=e){r(e)&&(h=e.ref,d=a.current),i(e)&&(p=\"\"+e.key);var v;t.type&&t.type.defaultProps&&(v=t.type.defaultProps);for(c in e)u.call(e,c)&&!s.hasOwnProperty(c)&&(void 0===e[c]&&void 0!==v?f[c]=v[c]:f[c]=e[c])}var g=arguments.length-2;if(1===g)f.children=n;else if(g>1){for(var m=Array(g),y=0;y<g;y++)m[y]=arguments[y+2];f.children=m}return l(t.type,p,h,0,0,d,f)},l.isValidElement=function(t){return\"object\"==typeof t&&null!==t&&t.$$typeof===c},t.exports=l},function(t,e,n){\"use strict\";e.a=function(t){return null===t?NaN:+t}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(219);n.d(e,\"formatDefaultLocale\",function(){return r.a}),n.d(e,\"format\",function(){return r.b}),n.d(e,\"formatPrefix\",function(){return r.c});var i=n(117);n.d(e,\"formatLocale\",function(){return i.a});var o=n(115);n.d(e,\"formatSpecifier\",function(){return o.a});var a=n(225);n.d(e,\"precisionFixed\",function(){return a.a});var u=n(226);n.d(e,\"precisionPrefix\",function(){return u.a});var c=n(227);n.d(e,\"precisionRound\",function(){return c.a})},function(t,e,n){\"use strict\";var r=n(65);n.d(e,\"b\",function(){return r.a});var i=(n(118),n(64),n(119),n(121),n(43));n.d(e,\"a\",function(){return i.a});var o=(n(122),n(233));n.d(e,\"c\",function(){return o.a});var a=(n(124),n(235),n(237),n(123),n(230),n(231),n(229),n(228));n.d(e,\"d\",function(){return a.a});n(232)},function(t,e,n){\"use strict\";function r(t,e){return function(n){return t+n*e}}function i(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function o(t,e){var i=e-t;return i?r(t,i>180||i<-180?i-360*Math.round(i/360):i):n.i(c.a)(isNaN(t)?e:t)}function a(t){return 1==(t=+t)?u:function(e,r){return r-e?i(e,r,t):n.i(c.a)(isNaN(e)?r:e)}}function u(t,e){var i=e-t;return i?r(t,i):n.i(c.a)(isNaN(t)?e:t)}e.b=o,e.c=a,e.a=u;var c=n(120)},function(t,e,n){\"use strict\";var r=n(238);n.d(e,\"a\",function(){return r.a})},function(t,e,n){\"use strict\";e.a=function(t){return t.match(/.{6}/g).map(function(t){return\"#\"+t})}},function(t,e,n){\"use strict\";function r(t){var e=t.domain;return t.ticks=function(t){var r=e();return n.i(o.ticks)(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){return n.i(c.a)(e(),t,r)},t.nice=function(r){null==r&&(r=10);var i,a=e(),u=0,c=a.length-1,s=a[u],l=a[c];return l<s&&(i=s,s=l,l=i,i=u,u=c,c=i),i=n.i(o.tickIncrement)(s,l,r),i>0?(s=Math.floor(s/i)*i,l=Math.ceil(l/i)*i,i=n.i(o.tickIncrement)(s,l,r)):i<0&&(s=Math.ceil(s*i)/i,l=Math.floor(l*i)/i,i=n.i(o.tickIncrement)(s,l,r)),i>0?(a[u]=Math.floor(s/i)*i,a[c]=Math.ceil(l/i)*i,e(a)):i<0&&(a[u]=Math.ceil(s*i)/i,a[c]=Math.floor(l*i)/i,e(a)),t},t}function i(){var t=n.i(u.a)(u.b,a.a);return t.copy=function(){return n.i(u.c)(t,i())},r(t)}e.b=r,e.a=i;var o=n(7),a=n(30),u=n(44),c=n(253)},function(t,e,n){\"use strict\";function r(t){return t>1?0:t<-1?h:Math.acos(t)}function i(t){return t>=1?d:t<=-1?-d:Math.asin(t)}n.d(e,\"g\",function(){return o}),n.d(e,\"m\",function(){return a}),n.d(e,\"h\",function(){return u}),n.d(e,\"e\",function(){return c}),n.d(e,\"j\",function(){return s}),n.d(e,\"i\",function(){return l}),n.d(e,\"d\",function(){return f}),n.d(e,\"a\",function(){return p}),n.d(e,\"b\",function(){return h}),n.d(e,\"f\",function(){return d}),n.d(e,\"c\",function(){return v}),e.l=r,e.k=i;var o=Math.abs,a=Math.atan2,u=Math.cos,c=Math.max,s=Math.min,l=Math.sin,f=Math.sqrt,p=1e-12,h=Math.PI,d=h/2,v=2*h},function(t,e,n){\"use strict\";e.a=function(t,e){if((i=t.length)>1)for(var n,r,i,o=1,a=t[e[0]],u=a.length;o<i;++o)for(r=a,a=t[e[o]],n=0;n<u;++n)a[n][1]+=a[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}},function(t,e,n){\"use strict\";e.a=function(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}},function(t,e,n){(function(t,r){var i;(function(){function o(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function a(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var a=t[i];e(r,a,n(a),t)}return r}function u(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function c(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function s(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function l(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var a=t[n];e(a,n,t)&&(o[i++]=a)}return o}function f(t,e){return!!(null==t?0:t.length)&&w(t,e,0)>-1}function p(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function h(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function d(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function v(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function g(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function m(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function y(t){return t.split(\"\")}function _(t){return t.match(Ue)||[]}function b(t,e,n){var r;return n(t,function(t,n,i){if(e(t,n,i))return r=n,!1}),r}function x(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function w(t,e,n){return e===e?$(t,e,n):x(t,k,n)}function C(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function k(t){return t!==t}function E(t,e){var n=null==t?0:t.length;return n?A(t,e)/n:It}function M(t){return function(e){return null==e?nt:e[t]}}function T(t){return function(e){return null==t?nt:t[e]}}function S(t,e,n,r,i){return i(t,function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)}),n}function N(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}function A(t,e){for(var n,r=-1,i=t.length;++r<i;){var o=e(t[r]);o!==nt&&(n=n===nt?o:n+o)}return n}function P(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function O(t,e){return h(e,function(e){return[e,t[e]]})}function I(t){return function(e){return t(e)}}function D(t,e){return h(e,function(e){return t[e]})}function R(t,e){return t.has(e)}function L(t,e){for(var n=-1,r=t.length;++n<r&&w(e,t[n],0)>-1;);return n}function U(t,e){for(var n=t.length;n--&&w(e,t[n],0)>-1;);return n}function F(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}function j(t){return\"\\\\\"+En[t]}function B(t,e){return null==t?nt:t[e]}function V(t){return gn.test(t)}function W(t){return mn.test(t)}function z(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}function H(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function q(t,e){return function(n){return t(e(n))}}function Y(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var a=t[n];a!==e&&a!==ct||(t[n]=ct,o[i++]=n)}return o}function K(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}function G(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=[t,t]}),n}function $(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}function X(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}function Q(t){return V(t)?J(t):Wn(t)}function Z(t){return V(t)?tt(t):y(t)}function J(t){for(var e=dn.lastIndex=0;dn.test(t);)++e;return e}function tt(t){return t.match(dn)||[]}function et(t){return t.match(vn)||[]}var nt,rt=200,it=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",ot=\"Expected a function\",at=\"__lodash_hash_undefined__\",ut=500,ct=\"__lodash_placeholder__\",st=1,lt=2,ft=4,pt=1,ht=2,dt=1,vt=2,gt=4,mt=8,yt=16,_t=32,bt=64,xt=128,wt=256,Ct=512,kt=30,Et=\"...\",Mt=800,Tt=16,St=1,Nt=2,At=1/0,Pt=9007199254740991,Ot=1.7976931348623157e308,It=NaN,Dt=4294967295,Rt=Dt-1,Lt=Dt>>>1,Ut=[[\"ary\",xt],[\"bind\",dt],[\"bindKey\",vt],[\"curry\",mt],[\"curryRight\",yt],[\"flip\",Ct],[\"partial\",_t],[\"partialRight\",bt],[\"rearg\",wt]],Ft=\"[object Arguments]\",jt=\"[object Array]\",Bt=\"[object AsyncFunction]\",Vt=\"[object Boolean]\",Wt=\"[object Date]\",zt=\"[object DOMException]\",Ht=\"[object Error]\",qt=\"[object Function]\",Yt=\"[object GeneratorFunction]\",Kt=\"[object Map]\",Gt=\"[object Number]\",$t=\"[object Null]\",Xt=\"[object Object]\",Qt=\"[object Proxy]\",Zt=\"[object RegExp]\",Jt=\"[object Set]\",te=\"[object String]\",ee=\"[object Symbol]\",ne=\"[object Undefined]\",re=\"[object WeakMap]\",ie=\"[object WeakSet]\",oe=\"[object ArrayBuffer]\",ae=\"[object DataView]\",ue=\"[object Float32Array]\",ce=\"[object Float64Array]\",se=\"[object Int8Array]\",le=\"[object Int16Array]\",fe=\"[object Int32Array]\",pe=\"[object Uint8Array]\",he=\"[object Uint8ClampedArray]\",de=\"[object Uint16Array]\",ve=\"[object Uint32Array]\",ge=/\\b__p \\+= '';/g,me=/\\b(__p \\+=) '' \\+/g,ye=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,_e=/&(?:amp|lt|gt|quot|#39);/g,be=/[&<>\"']/g,xe=RegExp(_e.source),we=RegExp(be.source),Ce=/<%-([\\s\\S]+?)%>/g,ke=/<%([\\s\\S]+?)%>/g,Ee=/<%=([\\s\\S]+?)%>/g,Me=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,Te=/^\\w*$/,Se=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,Ne=/[\\\\^$.*+?()[\\]{}|]/g,Ae=RegExp(Ne.source),Pe=/^\\s+|\\s+$/g,Oe=/^\\s+/,Ie=/\\s+$/,De=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,Re=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,Le=/,? & /,Ue=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,Fe=/\\\\(\\\\)?/g,je=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Be=/\\w*$/,Ve=/^[-+]0x[0-9a-f]+$/i,We=/^0b[01]+$/i,ze=/^\\[object .+?Constructor\\]$/,He=/^0o[0-7]+$/i,qe=/^(?:0|[1-9]\\d*)$/,Ye=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Ke=/($^)/,Ge=/['\\n\\r\\u2028\\u2029\\\\]/g,$e=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",Xe=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Qe=\"[\"+Xe+\"]\",Ze=\"[\"+$e+\"]\",Je=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]\",tn=\"[^\\\\ud800-\\\\udfff\"+Xe+\"\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",en=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",nn=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",rn=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",on=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",an=\"(?:\"+Je+\"|\"+tn+\")\",un=\"(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?\",cn=\"(?:\\\\u200d(?:\"+[\"[^\\\\ud800-\\\\udfff]\",nn,rn].join(\"|\")+\")[\\\\ufe0e\\\\ufe0f]?\"+un+\")*\",sn=\"[\\\\ufe0e\\\\ufe0f]?\"+un+cn,ln=\"(?:\"+[\"[\\\\u2700-\\\\u27bf]\",nn,rn].join(\"|\")+\")\"+sn,fn=\"(?:\"+[\"[^\\\\ud800-\\\\udfff]\"+Ze+\"?\",Ze,nn,rn,\"[\\\\ud800-\\\\udfff]\"].join(\"|\")+\")\",pn=RegExp(\"['’]\",\"g\"),hn=RegExp(Ze,\"g\"),dn=RegExp(en+\"(?=\"+en+\")|\"+fn+sn,\"g\"),vn=RegExp([on+\"?\"+Je+\"+(?:['’](?:d|ll|m|re|s|t|ve))?(?=\"+[Qe,on,\"$\"].join(\"|\")+\")\",\"(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=\"+[Qe,on+an,\"$\"].join(\"|\")+\")\",on+\"?\"+an+\"+(?:['’](?:d|ll|m|re|s|t|ve))?\",on+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?\",\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",\"\\\\d+\",ln].join(\"|\"),\"g\"),gn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\"+$e+\"\\\\ufe0e\\\\ufe0f]\"),mn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,yn=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],_n=-1,bn={};bn[ue]=bn[ce]=bn[se]=bn[le]=bn[fe]=bn[pe]=bn[he]=bn[de]=bn[ve]=!0,bn[Ft]=bn[jt]=bn[oe]=bn[Vt]=bn[ae]=bn[Wt]=bn[Ht]=bn[qt]=bn[Kt]=bn[Gt]=bn[Xt]=bn[Zt]=bn[Jt]=bn[te]=bn[re]=!1;var xn={};xn[Ft]=xn[jt]=xn[oe]=xn[ae]=xn[Vt]=xn[Wt]=xn[ue]=xn[ce]=xn[se]=xn[le]=xn[fe]=xn[Kt]=xn[Gt]=xn[Xt]=xn[Zt]=xn[Jt]=xn[te]=xn[ee]=xn[pe]=xn[he]=xn[de]=xn[ve]=!0,xn[Ht]=xn[qt]=xn[re]=!1;var wn={\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ą\":\"A\",\"ā\":\"a\",\"ă\":\"a\",\"ą\":\"a\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"Ď\":\"D\",\"Đ\":\"D\",\"ď\":\"d\",\"đ\":\"d\",\"Ē\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ę\":\"E\",\"Ě\":\"E\",\"ē\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ę\":\"e\",\"ě\":\"e\",\"Ĝ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ģ\":\"G\",\"ĝ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ģ\":\"g\",\"Ĥ\":\"H\",\"Ħ\":\"H\",\"ĥ\":\"h\",\"ħ\":\"h\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"Į\":\"I\",\"İ\":\"I\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"į\":\"i\",\"ı\":\"i\",\"Ĵ\":\"J\",\"ĵ\":\"j\",\"Ķ\":\"K\",\"ķ\":\"k\",\"ĸ\":\"k\",\"Ĺ\":\"L\",\"Ļ\":\"L\",\"Ľ\":\"L\",\"Ŀ\":\"L\",\"Ł\":\"L\",\"ĺ\":\"l\",\"ļ\":\"l\",\"ľ\":\"l\",\"ŀ\":\"l\",\"ł\":\"l\",\"Ń\":\"N\",\"Ņ\":\"N\",\"Ň\":\"N\",\"Ŋ\":\"N\",\"ń\":\"n\",\"ņ\":\"n\",\"ň\":\"n\",\"ŋ\":\"n\",\"Ō\":\"O\",\"Ŏ\":\"O\",\"Ő\":\"O\",\"ō\":\"o\",\"ŏ\":\"o\",\"ő\":\"o\",\"Ŕ\":\"R\",\"Ŗ\":\"R\",\"Ř\":\"R\",\"ŕ\":\"r\",\"ŗ\":\"r\",\"ř\":\"r\",\"Ś\":\"S\",\"Ŝ\":\"S\",\"Ş\":\"S\",\"Š\":\"S\",\"ś\":\"s\",\"ŝ\":\"s\",\"ş\":\"s\",\"š\":\"s\",\"Ţ\":\"T\",\"Ť\":\"T\",\"Ŧ\":\"T\",\"ţ\":\"t\",\"ť\":\"t\",\"ŧ\":\"t\",\"Ũ\":\"U\",\"Ū\":\"U\",\"Ŭ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ų\":\"U\",\"ũ\":\"u\",\"ū\":\"u\",\"ŭ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"ź\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"Ĳ\":\"IJ\",\"ĳ\":\"ij\",\"Œ\":\"Oe\",\"œ\":\"oe\",\"ŉ\":\"'n\",\"ſ\":\"s\"},Cn={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},kn={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"},En={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Mn=parseFloat,Tn=parseInt,Sn=\"object\"==typeof t&&t&&t.Object===Object&&t,Nn=\"object\"==typeof self&&self&&self.Object===Object&&self,An=Sn||Nn||Function(\"return this\")(),Pn=\"object\"==typeof e&&e&&!e.nodeType&&e,On=Pn&&\"object\"==typeof r&&r&&!r.nodeType&&r,In=On&&On.exports===Pn,Dn=In&&Sn.process,Rn=function(){try{var t=On&&On.require&&On.require(\"util\").types;return t||Dn&&Dn.binding&&Dn.binding(\"util\")}catch(t){}}(),Ln=Rn&&Rn.isArrayBuffer,Un=Rn&&Rn.isDate,Fn=Rn&&Rn.isMap,jn=Rn&&Rn.isRegExp,Bn=Rn&&Rn.isSet,Vn=Rn&&Rn.isTypedArray,Wn=M(\"length\"),zn=T(wn),Hn=T(Cn),qn=T(kn),Yn=function t(e){function n(t){if(ec(t)&&!hp(t)&&!(t instanceof y)){if(t instanceof i)return t;if(pl.call(t,\"__wrapped__\"))return Zo(t)}return new i(t)}function r(){}function i(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=nt}function y(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Dt,this.__views__=[]}function T(){var t=new y(this.__wrapped__);return t.__actions__=Oi(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Oi(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Oi(this.__views__),t}function $(){if(this.__filtered__){var t=new y(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function J(){var t=this.__wrapped__.value(),e=this.__dir__,n=hp(t),r=e<0,i=n?t.length:0,o=wo(0,i,this.__views__),a=o.start,u=o.end,c=u-a,s=r?u:a-1,l=this.__iteratees__,f=l.length,p=0,h=Wl(c,this.__takeCount__);if(!n||!r&&i==c&&h==c)return vi(t,this.__actions__);var d=[];t:for(;c--&&p<h;){s+=e;for(var v=-1,g=t[s];++v<f;){var m=l[v],y=m.iteratee,_=m.type,b=y(g);if(_==Nt)g=b;else if(!b){if(_==St)continue t;break t}}d[p++]=g}return d}function tt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Ue(){this.__data__=Zl?Zl(null):{},this.size=0}function $e(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function Xe(t){var e=this.__data__;if(Zl){var n=e[t];return n===at?nt:n}return pl.call(e,t)?e[t]:nt}function Qe(t){var e=this.__data__;return Zl?e[t]!==nt:pl.call(e,t)}function Ze(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Zl&&e===nt?at:e,this}function Je(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function tn(){this.__data__=[],this.size=0}function en(t){var e=this.__data__,n=Kn(e,t);return!(n<0)&&(n==e.length-1?e.pop():Ml.call(e,n,1),--this.size,!0)}function nn(t){var e=this.__data__,n=Kn(e,t);return n<0?nt:e[n][1]}function rn(t){return Kn(this.__data__,t)>-1}function on(t,e){var n=this.__data__,r=Kn(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function an(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function un(){this.size=0,this.__data__={hash:new tt,map:new(Gl||Je),string:new tt}}function cn(t){var e=yo(this,t).delete(t);return this.size-=e?1:0,e}function sn(t){return yo(this,t).get(t)}function ln(t){return yo(this,t).has(t)}function fn(t,e){var n=yo(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}function dn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new an;++e<n;)this.add(t[e])}function vn(t){return this.__data__.set(t,at),this}function gn(t){return this.__data__.has(t)}function mn(t){var e=this.__data__=new Je(t);this.size=e.size}function wn(){this.__data__=new Je,this.size=0}function Cn(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function kn(t){return this.__data__.get(t)}function En(t){return this.__data__.has(t)}function Sn(t,e){var n=this.__data__;if(n instanceof Je){var r=n.__data__;if(!Gl||r.length<rt-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new an(r)}return n.set(t,e),this.size=n.size,this}function Nn(t,e){var n=hp(t),r=!n&&pp(t),i=!n&&!r&&vp(t),o=!n&&!r&&!i&&bp(t),a=n||r||i||o,u=a?P(t.length,ol):[],c=u.length;for(var s in t)!e&&!pl.call(t,s)||a&&(\"length\"==s||i&&(\"offset\"==s||\"parent\"==s)||o&&(\"buffer\"==s||\"byteLength\"==s||\"byteOffset\"==s)||Ao(s,c))||u.push(s);return u}function Pn(t){var e=t.length;return e?t[Xr(0,e-1)]:nt}function On(t,e){return Go(Oi(t),Jn(e,0,t.length))}function Dn(t){return Go(Oi(t))}function Rn(t,e,n){(n===nt||Vu(t[e],n))&&(n!==nt||e in t)||Qn(t,e,n)}function Wn(t,e,n){var r=t[e];pl.call(t,e)&&Vu(r,n)&&(n!==nt||e in t)||Qn(t,e,n)}function Kn(t,e){for(var n=t.length;n--;)if(Vu(t[n][0],e))return n;return-1}function Gn(t,e,n,r){return ff(t,function(t,i,o){e(r,t,n(t),o)}),r}function $n(t,e){return t&&Ii(e,Lc(e),t)}function Xn(t,e){return t&&Ii(e,Uc(e),t)}function Qn(t,e,n){\"__proto__\"==e&&Al?Al(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Zn(t,e){for(var n=-1,r=e.length,i=Zs(r),o=null==t;++n<r;)i[n]=o?nt:Ic(t,e[n]);return i}function Jn(t,e,n){return t===t&&(n!==nt&&(t=t<=n?t:n),e!==nt&&(t=t>=e?t:e)),t}function tr(t,e,n,r,i,o){var a,c=e&st,s=e&lt,l=e&ft;if(n&&(a=i?n(t,r,i,o):n(t)),a!==nt)return a;if(!tc(t))return t;var f=hp(t);if(f){if(a=Eo(t),!c)return Oi(t,a)}else{var p=Cf(t),h=p==qt||p==Yt;if(vp(t))return wi(t,c);if(p==Xt||p==Ft||h&&!i){if(a=s||h?{}:Mo(t),!c)return s?Ri(t,Xn(a,t)):Di(t,$n(a,t))}else{if(!xn[p])return i?t:{};a=To(t,p,c)}}o||(o=new mn);var d=o.get(t);if(d)return d;if(o.set(t,a),_p(t))return t.forEach(function(r){a.add(tr(r,e,n,r,t,o))}),a;if(mp(t))return t.forEach(function(r,i){a.set(i,tr(r,e,n,i,t,o))}),a;var v=l?s?ho:po:s?Uc:Lc,g=f?nt:v(t);return u(g||t,function(r,i){g&&(i=r,r=t[i]),Wn(a,i,tr(r,e,n,i,t,o))}),a}function er(t){var e=Lc(t);return function(n){return nr(n,t,e)}}function nr(t,e,n){var r=n.length;if(null==t)return!r;for(t=rl(t);r--;){var i=n[r],o=e[i],a=t[i];if(a===nt&&!(i in t)||!o(a))return!1}return!0}function rr(t,e,n){if(\"function\"!=typeof t)throw new al(ot);return Mf(function(){t.apply(nt,n)},e)}function ir(t,e,n,r){var i=-1,o=f,a=!0,u=t.length,c=[],s=e.length;if(!u)return c;n&&(e=h(e,I(n))),r?(o=p,a=!1):e.length>=rt&&(o=R,a=!1,e=new dn(e));t:for(;++i<u;){var l=t[i],d=null==n?l:n(l);if(l=r||0!==l?l:0,a&&d===d){for(var v=s;v--;)if(e[v]===d)continue t;c.push(l)}else o(e,d,r)||c.push(l)}return c}function or(t,e){var n=!0;return ff(t,function(t,r,i){return n=!!e(t,r,i)}),n}function ar(t,e,n){for(var r=-1,i=t.length;++r<i;){var o=t[r],a=e(o);if(null!=a&&(u===nt?a===a&&!pc(a):n(a,u)))var u=a,c=o}return c}function ur(t,e,n,r){var i=t.length;for(n=yc(n),n<0&&(n=-n>i?0:i+n),r=r===nt||r>i?i:yc(r),r<0&&(r+=i),r=n>r?0:_c(r);n<r;)t[n++]=e;return t}function cr(t,e){var n=[];return ff(t,function(t,r,i){e(t,r,i)&&n.push(t)}),n}function sr(t,e,n,r,i){var o=-1,a=t.length;for(n||(n=No),i||(i=[]);++o<a;){var u=t[o];e>0&&n(u)?e>1?sr(u,e-1,n,r,i):d(i,u):r||(i[i.length]=u)}return i}function lr(t,e){return t&&hf(t,e,Lc)}function fr(t,e){return t&&df(t,e,Lc)}function pr(t,e){return l(e,function(e){return Qu(t[e])})}function hr(t,e){e=bi(e,t);for(var n=0,r=e.length;null!=t&&n<r;)t=t[$o(e[n++])];return n&&n==r?t:nt}function dr(t,e,n){var r=e(t);return hp(t)?r:d(r,n(t))}function vr(t){return null==t?t===nt?ne:$t:Nl&&Nl in rl(t)?xo(t):Vo(t)}function gr(t,e){return t>e}function mr(t,e){return null!=t&&pl.call(t,e)}function yr(t,e){return null!=t&&e in rl(t)}function _r(t,e,n){return t>=Wl(e,n)&&t<Vl(e,n)}function br(t,e,n){for(var r=n?p:f,i=t[0].length,o=t.length,a=o,u=Zs(o),c=1/0,s=[];a--;){var l=t[a];a&&e&&(l=h(l,I(e))),c=Wl(l.length,c),u[a]=!n&&(e||i>=120&&l.length>=120)?new dn(a&&l):nt}l=t[0];var d=-1,v=u[0];t:for(;++d<i&&s.length<c;){var g=l[d],m=e?e(g):g;if(g=n||0!==g?g:0,!(v?R(v,m):r(s,m,n))){for(a=o;--a;){var y=u[a];if(!(y?R(y,m):r(t[a],m,n)))continue t}v&&v.push(m),s.push(g)}}return s}function xr(t,e,n,r){return lr(t,function(t,i,o){e(r,n(t),i,o)}),r}function wr(t,e,n){e=bi(e,t),t=zo(t,e);var r=null==t?t:t[$o(ma(e))];return null==r?nt:o(r,t,n)}function Cr(t){return ec(t)&&vr(t)==Ft}function kr(t){return ec(t)&&vr(t)==oe}function Er(t){return ec(t)&&vr(t)==Wt}function Mr(t,e,n,r,i){return t===e||(null==t||null==e||!ec(t)&&!ec(e)?t!==t&&e!==e:Tr(t,e,n,r,Mr,i))}function Tr(t,e,n,r,i,o){var a=hp(t),u=hp(e),c=a?jt:Cf(t),s=u?jt:Cf(e);c=c==Ft?Xt:c,s=s==Ft?Xt:s;var l=c==Xt,f=s==Xt,p=c==s;if(p&&vp(t)){if(!vp(e))return!1;a=!0,l=!1}if(p&&!l)return o||(o=new mn),a||bp(t)?co(t,e,n,r,i,o):so(t,e,c,n,r,i,o);if(!(n&pt)){var h=l&&pl.call(t,\"__wrapped__\"),d=f&&pl.call(e,\"__wrapped__\");if(h||d){var v=h?t.value():t,g=d?e.value():e;return o||(o=new mn),i(v,g,n,r,o)}}return!!p&&(o||(o=new mn),lo(t,e,n,r,i,o))}function Sr(t){return ec(t)&&Cf(t)==Kt}function Nr(t,e,n,r){var i=n.length,o=i,a=!r;if(null==t)return!o;for(t=rl(t);i--;){var u=n[i];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++i<o;){u=n[i];var c=u[0],s=t[c],l=u[1];if(a&&u[2]){if(s===nt&&!(c in t))return!1}else{var f=new mn;if(r)var p=r(s,l,c,t,e,f);if(!(p===nt?Mr(l,s,pt|ht,r,f):p))return!1}}return!0}function Ar(t){return!(!tc(t)||Ro(t))&&(Qu(t)?yl:ze).test(Xo(t))}function Pr(t){return ec(t)&&vr(t)==Zt}function Or(t){return ec(t)&&Cf(t)==Jt}function Ir(t){return ec(t)&&Ju(t.length)&&!!bn[vr(t)]}function Dr(t){return\"function\"==typeof t?t:null==t?Ms:\"object\"==typeof t?hp(t)?Br(t[0],t[1]):jr(t):Ds(t)}function Rr(t){if(!Lo(t))return Bl(t);var e=[];for(var n in rl(t))pl.call(t,n)&&\"constructor\"!=n&&e.push(n);return e}function Lr(t){if(!tc(t))return Bo(t);var e=Lo(t),n=[];for(var r in t)(\"constructor\"!=r||!e&&pl.call(t,r))&&n.push(r);return n}function Ur(t,e){return t<e}function Fr(t,e){var n=-1,r=Wu(t)?Zs(t.length):[];return ff(t,function(t,i,o){r[++n]=e(t,i,o)}),r}function jr(t){var e=_o(t);return 1==e.length&&e[0][2]?Fo(e[0][0],e[0][1]):function(n){return n===t||Nr(n,t,e)}}function Br(t,e){return Oo(t)&&Uo(e)?Fo($o(t),e):function(n){var r=Ic(n,t);return r===nt&&r===e?Rc(n,t):Mr(e,r,pt|ht)}}function Vr(t,e,n,r,i){t!==e&&hf(e,function(o,a){if(tc(o))i||(i=new mn),Wr(t,e,a,n,Vr,r,i);else{var u=r?r(qo(t,a),o,a+\"\",t,e,i):nt;u===nt&&(u=o),Rn(t,a,u)}},Uc)}function Wr(t,e,n,r,i,o,a){var u=qo(t,n),c=qo(e,n),s=a.get(c);if(s)return void Rn(t,n,s);var l=o?o(u,c,n+\"\",t,e,a):nt,f=l===nt;if(f){var p=hp(c),h=!p&&vp(c),d=!p&&!h&&bp(c);l=c,p||h||d?hp(u)?l=u:zu(u)?l=Oi(u):h?(f=!1,l=wi(c,!0)):d?(f=!1,l=Ti(c,!0)):l=[]:sc(c)||pp(c)?(l=u,pp(u)?l=xc(u):tc(u)&&!Qu(u)||(l=Mo(c))):f=!1}f&&(a.set(c,l),i(l,c,r,o,a),a.delete(c)),Rn(t,n,l)}function zr(t,e){var n=t.length;if(n)return e+=e<0?n:0,Ao(e,n)?t[e]:nt}function Hr(t,e,n){var r=-1;return e=h(e.length?e:[Ms],I(mo())),N(Fr(t,function(t,n,i){return{criteria:h(e,function(e){return e(t)}),index:++r,value:t}}),function(t,e){return Ni(t,e,n)})}function qr(t,e){return Yr(t,e,function(e,n){return Rc(t,n)})}function Yr(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var a=e[r],u=hr(t,a);n(u,a)&&ni(o,bi(a,t),u)}return o}function Kr(t){return function(e){return hr(e,t)}}function Gr(t,e,n,r){var i=r?C:w,o=-1,a=e.length,u=t;for(t===e&&(e=Oi(e)),n&&(u=h(t,I(n)));++o<a;)for(var c=0,s=e[o],l=n?n(s):s;(c=i(u,l,c,r))>-1;)u!==t&&Ml.call(u,c,1),Ml.call(t,c,1);return t}function $r(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;Ao(i)?Ml.call(t,i,1):pi(t,i)}}return t}function Xr(t,e){return t+Rl(ql()*(e-t+1))}function Qr(t,e,n,r){for(var i=-1,o=Vl(Dl((e-t)/(n||1)),0),a=Zs(o);o--;)a[r?o:++i]=t,t+=n;return a}function Zr(t,e){var n=\"\";if(!t||e<1||e>Pt)return n;do{e%2&&(n+=t),(e=Rl(e/2))&&(t+=t)}while(e);return n}function Jr(t,e){return Tf(Wo(t,e,Ms),t+\"\")}function ti(t){return Pn($c(t))}function ei(t,e){var n=$c(t);return Go(n,Jn(e,0,n.length))}function ni(t,e,n,r){if(!tc(t))return t;e=bi(e,t);for(var i=-1,o=e.length,a=o-1,u=t;null!=u&&++i<o;){var c=$o(e[i]),s=n;if(i!=a){var l=u[c];s=r?r(l,c,u):nt,s===nt&&(s=tc(l)?l:Ao(e[i+1])?[]:{})}Wn(u,c,s),u=u[c]}return t}function ri(t){return Go($c(t))}function ii(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=Zs(i);++r<i;)o[r]=t[r+e];return o}function oi(t,e){var n;return ff(t,function(t,r,i){return!(n=e(t,r,i))}),!!n}function ai(t,e,n){var r=0,i=null==t?r:t.length;if(\"number\"==typeof e&&e===e&&i<=Lt){for(;r<i;){var o=r+i>>>1,a=t[o];null!==a&&!pc(a)&&(n?a<=e:a<e)?r=o+1:i=o}return i}return ui(t,e,Ms,n)}function ui(t,e,n,r){e=n(e);for(var i=0,o=null==t?0:t.length,a=e!==e,u=null===e,c=pc(e),s=e===nt;i<o;){var l=Rl((i+o)/2),f=n(t[l]),p=f!==nt,h=null===f,d=f===f,v=pc(f);if(a)var g=r||d;else g=s?d&&(r||p):u?d&&p&&(r||!h):c?d&&p&&!h&&(r||!v):!h&&!v&&(r?f<=e:f<e);g?i=l+1:o=l}return Wl(o,Rt)}function ci(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var a=t[n],u=e?e(a):a;if(!n||!Vu(u,c)){var c=u;o[i++]=0===a?0:a}}return o}function si(t){return\"number\"==typeof t?t:pc(t)?It:+t}function li(t){if(\"string\"==typeof t)return t;if(hp(t))return h(t,li)+\"\";if(pc(t))return sf?sf.call(t):\"\";var e=t+\"\";return\"0\"==e&&1/t==-At?\"-0\":e}function fi(t,e,n){var r=-1,i=f,o=t.length,a=!0,u=[],c=u;if(n)a=!1,i=p;else if(o>=rt){var s=e?null:_f(t);if(s)return K(s);a=!1,i=R,c=new dn}else c=e?[]:u;t:for(;++r<o;){var l=t[r],h=e?e(l):l;if(l=n||0!==l?l:0,a&&h===h){for(var d=c.length;d--;)if(c[d]===h)continue t;e&&c.push(h),u.push(l)}else i(c,h,n)||(c!==u&&c.push(h),u.push(l))}return u}function pi(t,e){return e=bi(e,t),null==(t=zo(t,e))||delete t[$o(ma(e))]}function hi(t,e,n,r){return ni(t,e,n(hr(t,e)),r)}function di(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?ii(t,r?0:o,r?o+1:i):ii(t,r?o+1:0,r?i:o)}function vi(t,e){var n=t;return n instanceof y&&(n=n.value()),v(e,function(t,e){return e.func.apply(e.thisArg,d([t],e.args))},n)}function gi(t,e,n){var r=t.length;if(r<2)return r?fi(t[0]):[];for(var i=-1,o=Zs(r);++i<r;)for(var a=t[i],u=-1;++u<r;)u!=i&&(o[i]=ir(o[i]||a,t[u],e,n));return fi(sr(o,1),e,n)}function mi(t,e,n){for(var r=-1,i=t.length,o=e.length,a={};++r<i;){var u=r<o?e[r]:nt;n(a,t[r],u)}return a}function yi(t){return zu(t)?t:[]}function _i(t){return\"function\"==typeof t?t:Ms}function bi(t,e){return hp(t)?t:Oo(t,e)?[t]:Sf(Cc(t))}function xi(t,e,n){var r=t.length;return n=n===nt?r:n,!e&&n>=r?t:ii(t,e,n)}function wi(t,e){if(e)return t.slice();var n=t.length,r=wl?wl(n):new t.constructor(n);return t.copy(r),r}function Ci(t){var e=new t.constructor(t.byteLength);return new xl(e).set(new xl(t)),e}function ki(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}function Ei(t){var e=new t.constructor(t.source,Be.exec(t));return e.lastIndex=t.lastIndex,e}function Mi(t){return cf?rl(cf.call(t)):{}}function Ti(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Si(t,e){if(t!==e){var n=t!==nt,r=null===t,i=t===t,o=pc(t),a=e!==nt,u=null===e,c=e===e,s=pc(e);if(!u&&!s&&!o&&t>e||o&&a&&c&&!u&&!s||r&&a&&c||!n&&c||!i)return 1;if(!r&&!o&&!s&&t<e||s&&n&&i&&!r&&!o||u&&n&&i||!a&&i||!c)return-1}return 0}function Ni(t,e,n){for(var r=-1,i=t.criteria,o=e.criteria,a=i.length,u=n.length;++r<a;){var c=Si(i[r],o[r]);if(c){if(r>=u)return c;return c*(\"desc\"==n[r]?-1:1)}}return t.index-e.index}function Ai(t,e,n,r){for(var i=-1,o=t.length,a=n.length,u=-1,c=e.length,s=Vl(o-a,0),l=Zs(c+s),f=!r;++u<c;)l[u]=e[u];for(;++i<a;)(f||i<o)&&(l[n[i]]=t[i]);for(;s--;)l[u++]=t[i++];return l}function Pi(t,e,n,r){for(var i=-1,o=t.length,a=-1,u=n.length,c=-1,s=e.length,l=Vl(o-u,0),f=Zs(l+s),p=!r;++i<l;)f[i]=t[i];for(var h=i;++c<s;)f[h+c]=e[c];for(;++a<u;)(p||i<o)&&(f[h+n[a]]=t[i++]);return f}function Oi(t,e){var n=-1,r=t.length;for(e||(e=Zs(r));++n<r;)e[n]=t[n];return e}function Ii(t,e,n,r){var i=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var u=e[o],c=r?r(n[u],t[u],u,n,t):nt;c===nt&&(c=t[u]),i?Qn(n,u,c):Wn(n,u,c)}return n}function Di(t,e){return Ii(t,xf(t),e)}function Ri(t,e){return Ii(t,wf(t),e)}function Li(t,e){return function(n,r){var i=hp(n)?a:Gn,o=e?e():{};return i(n,t,mo(r,2),o)}}function Ui(t){return Jr(function(e,n){var r=-1,i=n.length,o=i>1?n[i-1]:nt,a=i>2?n[2]:nt;for(o=t.length>3&&\"function\"==typeof o?(i--,o):nt,a&&Po(n[0],n[1],a)&&(o=i<3?nt:o,i=1),e=rl(e);++r<i;){var u=n[r];u&&t(e,u,r,o)}return e})}function Fi(t,e){return function(n,r){if(null==n)return n;if(!Wu(n))return t(n,r);for(var i=n.length,o=e?i:-1,a=rl(n);(e?o--:++o<i)&&!1!==r(a[o],o,a););return n}}function ji(t){return function(e,n,r){for(var i=-1,o=rl(e),a=r(e),u=a.length;u--;){var c=a[t?u:++i];if(!1===n(o[c],c,o))break}return e}}function Bi(t,e,n){function r(){return(this&&this!==An&&this instanceof r?o:t).apply(i?n:this,arguments)}var i=e&dt,o=zi(t);return r}function Vi(t){return function(e){e=Cc(e);var n=V(e)?Z(e):nt,r=n?n[0]:e.charAt(0),i=n?xi(n,1).join(\"\"):e.slice(1);return r[t]()+i}}function Wi(t){return function(e){return v(xs(es(e).replace(pn,\"\")),t,\"\")}}function zi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=lf(t.prototype),r=t.apply(n,e);return tc(r)?r:n}}function Hi(t,e,n){function r(){for(var a=arguments.length,u=Zs(a),c=a,s=go(r);c--;)u[c]=arguments[c];var l=a<3&&u[0]!==s&&u[a-1]!==s?[]:Y(u,s);return(a-=l.length)<n?eo(t,e,Ki,r.placeholder,nt,u,l,nt,nt,n-a):o(this&&this!==An&&this instanceof r?i:t,this,u)}var i=zi(t);return r}function qi(t){return function(e,n,r){var i=rl(e);if(!Wu(e)){var o=mo(n,3);e=Lc(e),n=function(t){return o(i[t],t,i)}}var a=t(e,n,r);return a>-1?i[o?e[a]:a]:nt}}function Yi(t){return fo(function(e){var n=e.length,r=n,o=i.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if(\"function\"!=typeof a)throw new al(ot);if(o&&!u&&\"wrapper\"==vo(a))var u=new i([],!0)}for(r=u?r:n;++r<n;){a=e[r];var c=vo(a),s=\"wrapper\"==c?bf(a):nt;u=s&&Do(s[0])&&s[1]==(xt|mt|_t|wt)&&!s[4].length&&1==s[9]?u[vo(s[0])].apply(u,s[3]):1==a.length&&Do(a)?u[c]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&hp(r))return u.plant(r).value();for(var i=0,o=n?e[i].apply(this,t):r;++i<n;)o=e[i].call(this,o);return o}})}function Ki(t,e,n,r,i,o,a,u,c,s){function l(){for(var m=arguments.length,y=Zs(m),_=m;_--;)y[_]=arguments[_];if(d)var b=go(l),x=F(y,b);if(r&&(y=Ai(y,r,i,d)),o&&(y=Pi(y,o,a,d)),m-=x,d&&m<s){var w=Y(y,b);return eo(t,e,Ki,l.placeholder,n,y,w,u,c,s-m)}var C=p?n:this,k=h?C[t]:t;return m=y.length,u?y=Ho(y,u):v&&m>1&&y.reverse(),f&&c<m&&(y.length=c),this&&this!==An&&this instanceof l&&(k=g||zi(k)),k.apply(C,y)}var f=e&xt,p=e&dt,h=e&vt,d=e&(mt|yt),v=e&Ct,g=h?nt:zi(t);return l}function Gi(t,e){return function(n,r){return xr(n,t,e(r),{})}}function $i(t,e){return function(n,r){var i;if(n===nt&&r===nt)return e;if(n!==nt&&(i=n),r!==nt){if(i===nt)return r;\"string\"==typeof n||\"string\"==typeof r?(n=li(n),r=li(r)):(n=si(n),r=si(r)),i=t(n,r)}return i}}function Xi(t){return fo(function(e){return e=h(e,I(mo())),Jr(function(n){var r=this;return t(e,function(t){return o(t,r,n)})})})}function Qi(t,e){e=e===nt?\" \":li(e);var n=e.length;if(n<2)return n?Zr(e,t):e;var r=Zr(e,Dl(t/Q(e)));return V(e)?xi(Z(r),0,t).join(\"\"):r.slice(0,t)}function Zi(t,e,n,r){function i(){for(var e=-1,c=arguments.length,s=-1,l=r.length,f=Zs(l+c),p=this&&this!==An&&this instanceof i?u:t;++s<l;)f[s]=r[s];for(;c--;)f[s++]=arguments[++e];return o(p,a?n:this,f)}var a=e&dt,u=zi(t);return i}function Ji(t){return function(e,n,r){return r&&\"number\"!=typeof r&&Po(e,n,r)&&(n=r=nt),e=mc(e),n===nt?(n=e,e=0):n=mc(n),r=r===nt?e<n?1:-1:mc(r),Qr(e,n,r,t)}}function to(t){return function(e,n){return\"string\"==typeof e&&\"string\"==typeof n||(e=bc(e),n=bc(n)),t(e,n)}}function eo(t,e,n,r,i,o,a,u,c,s){var l=e&mt,f=l?a:nt,p=l?nt:a,h=l?o:nt,d=l?nt:o;e|=l?_t:bt,(e&=~(l?bt:_t))&gt||(e&=~(dt|vt));var v=[t,e,i,h,f,d,p,u,c,s],g=n.apply(nt,v);return Do(t)&&Ef(g,v),g.placeholder=r,Yo(g,t,e)}function no(t){var e=nl[t];return function(t,n){if(t=bc(t),n=null==n?0:Wl(yc(n),292)){var r=(Cc(t)+\"e\").split(\"e\");return r=(Cc(e(r[0]+\"e\"+(+r[1]+n)))+\"e\").split(\"e\"),+(r[0]+\"e\"+(+r[1]-n))}return e(t)}}function ro(t){return function(e){var n=Cf(e);return n==Kt?H(e):n==Jt?G(e):O(e,t(e))}}function io(t,e,n,r,i,o,a,u){var c=e&vt;if(!c&&\"function\"!=typeof t)throw new al(ot);var s=r?r.length:0;if(s||(e&=~(_t|bt),r=i=nt),a=a===nt?a:Vl(yc(a),0),u=u===nt?u:yc(u),s-=i?i.length:0,e&bt){var l=r,f=i;r=i=nt}var p=c?nt:bf(t),h=[t,e,n,r,i,l,f,o,a,u];if(p&&jo(h,p),t=h[0],e=h[1],n=h[2],r=h[3],i=h[4],u=h[9]=h[9]===nt?c?0:t.length:Vl(h[9]-s,0),!u&&e&(mt|yt)&&(e&=~(mt|yt)),e&&e!=dt)d=e==mt||e==yt?Hi(t,e,u):e!=_t&&e!=(dt|_t)||i.length?Ki.apply(nt,h):Zi(t,e,n,r);else var d=Bi(t,e,n);return Yo((p?vf:Ef)(d,h),t,e)}function oo(t,e,n,r){return t===nt||Vu(t,sl[n])&&!pl.call(r,n)?e:t}function ao(t,e,n,r,i,o){return tc(t)&&tc(e)&&(o.set(e,t),Vr(t,e,nt,ao,o),o.delete(e)),t}function uo(t){return sc(t)?nt:t}function co(t,e,n,r,i,o){var a=n&pt,u=t.length,c=e.length;if(u!=c&&!(a&&c>u))return!1;var s=o.get(t);if(s&&o.get(e))return s==e;var l=-1,f=!0,p=n&ht?new dn:nt;for(o.set(t,e),o.set(e,t);++l<u;){var h=t[l],d=e[l];if(r)var v=a?r(d,h,l,e,t,o):r(h,d,l,t,e,o);if(v!==nt){if(v)continue;f=!1;break}if(p){if(!m(e,function(t,e){if(!R(p,e)&&(h===t||i(h,t,n,r,o)))return p.push(e)})){f=!1;break}}else if(h!==d&&!i(h,d,n,r,o)){f=!1;break}}return o.delete(t),o.delete(e),f}function so(t,e,n,r,i,o,a){switch(n){case ae:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case oe:return!(t.byteLength!=e.byteLength||!o(new xl(t),new xl(e)));case Vt:case Wt:case Gt:return Vu(+t,+e);case Ht:return t.name==e.name&&t.message==e.message;case Zt:case te:return t==e+\"\";case Kt:var u=H;case Jt:var c=r&pt;if(u||(u=K),t.size!=e.size&&!c)return!1;var s=a.get(t);if(s)return s==e;r|=ht,a.set(t,e);var l=co(u(t),u(e),r,i,o,a);return a.delete(t),l;case ee:if(cf)return cf.call(t)==cf.call(e)}return!1}function lo(t,e,n,r,i,o){var a=n&pt,u=po(t),c=u.length;if(c!=po(e).length&&!a)return!1;for(var s=c;s--;){var l=u[s];if(!(a?l in e:pl.call(e,l)))return!1}var f=o.get(t);if(f&&o.get(e))return f==e;var p=!0;o.set(t,e),o.set(e,t);for(var h=a;++s<c;){l=u[s];var d=t[l],v=e[l];if(r)var g=a?r(v,d,l,e,t,o):r(d,v,l,t,e,o);if(!(g===nt?d===v||i(d,v,n,r,o):g)){p=!1;break}h||(h=\"constructor\"==l)}if(p&&!h){var m=t.constructor,y=e.constructor;m!=y&&\"constructor\"in t&&\"constructor\"in e&&!(\"function\"==typeof m&&m instanceof m&&\"function\"==typeof y&&y instanceof y)&&(p=!1)}return o.delete(t),o.delete(e),p}function fo(t){return Tf(Wo(t,nt,sa),t+\"\")}function po(t){return dr(t,Lc,xf)}function ho(t){return dr(t,Uc,wf)}function vo(t){for(var e=t.name+\"\",n=tf[e],r=pl.call(tf,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function go(t){return(pl.call(n,\"placeholder\")?n:t).placeholder}function mo(){var t=n.iteratee||Ts;return t=t===Ts?Dr:t,arguments.length?t(arguments[0],arguments[1]):t}function yo(t,e){var n=t.__data__;return Io(e)?n[\"string\"==typeof e?\"string\":\"hash\"]:n.map}function _o(t){for(var e=Lc(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,Uo(i)]}return e}function bo(t,e){var n=B(t,e);return Ar(n)?n:nt}function xo(t){var e=pl.call(t,Nl),n=t[Nl];try{t[Nl]=nt;var r=!0}catch(t){}var i=vl.call(t);return r&&(e?t[Nl]=n:delete t[Nl]),i}function wo(t,e,n){for(var r=-1,i=n.length;++r<i;){var o=n[r],a=o.size;switch(o.type){case\"drop\":t+=a;break;case\"dropRight\":e-=a;break;case\"take\":e=Wl(e,t+a);break;case\"takeRight\":t=Vl(t,e-a)}}return{start:t,end:e}}function Co(t){var e=t.match(Re);return e?e[1].split(Le):[]}function ko(t,e,n){e=bi(e,t);for(var r=-1,i=e.length,o=!1;++r<i;){var a=$o(e[r]);if(!(o=null!=t&&n(t,a)))break;t=t[a]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Ju(i)&&Ao(a,i)&&(hp(t)||pp(t))}function Eo(t){var e=t.length,n=new t.constructor(e);return e&&\"string\"==typeof t[0]&&pl.call(t,\"index\")&&(n.index=t.index,n.input=t.input),n}function Mo(t){return\"function\"!=typeof t.constructor||Lo(t)?{}:lf(Cl(t))}function To(t,e,n){var r=t.constructor;switch(e){case oe:return Ci(t);case Vt:case Wt:return new r(+t);case ae:return ki(t,n);case ue:case ce:case se:case le:case fe:case pe:case he:case de:case ve:return Ti(t,n);case Kt:return new r;case Gt:case te:return new r(t);case Zt:return Ei(t);case Jt:return new r;case ee:return Mi(t)}}function So(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?\"& \":\"\")+e[r],e=e.join(n>2?\", \":\" \"),t.replace(De,\"{\\n/* [wrapped with \"+e+\"] */\\n\")}function No(t){return hp(t)||pp(t)||!!(Tl&&t&&t[Tl])}function Ao(t,e){var n=typeof t;return!!(e=null==e?Pt:e)&&(\"number\"==n||\"symbol\"!=n&&qe.test(t))&&t>-1&&t%1==0&&t<e}function Po(t,e,n){if(!tc(n))return!1;var r=typeof e;return!!(\"number\"==r?Wu(n)&&Ao(e,n.length):\"string\"==r&&e in n)&&Vu(n[e],t)}function Oo(t,e){if(hp(t))return!1;var n=typeof t;return!(\"number\"!=n&&\"symbol\"!=n&&\"boolean\"!=n&&null!=t&&!pc(t))||(Te.test(t)||!Me.test(t)||null!=e&&t in rl(e))}function Io(t){var e=typeof t;return\"string\"==e||\"number\"==e||\"symbol\"==e||\"boolean\"==e?\"__proto__\"!==t:null===t}function Do(t){var e=vo(t),r=n[e];if(\"function\"!=typeof r||!(e in y.prototype))return!1;if(t===r)return!0;var i=bf(r);return!!i&&t===i[0]}function Ro(t){return!!dl&&dl in t}function Lo(t){var e=t&&t.constructor;return t===(\"function\"==typeof e&&e.prototype||sl)}function Uo(t){return t===t&&!tc(t)}function Fo(t,e){return function(n){return null!=n&&(n[t]===e&&(e!==nt||t in rl(n)))}}function jo(t,e){var n=t[1],r=e[1],i=n|r,o=i<(dt|vt|xt),a=r==xt&&n==mt||r==xt&&n==wt&&t[7].length<=e[8]||r==(xt|wt)&&e[7].length<=e[8]&&n==mt;if(!o&&!a)return t;r&dt&&(t[2]=e[2],i|=n&dt?0:gt);var u=e[3];if(u){var c=t[3];t[3]=c?Ai(c,u,e[4]):u,t[4]=c?Y(t[3],ct):e[4]}return u=e[5],u&&(c=t[5],t[5]=c?Pi(c,u,e[6]):u,t[6]=c?Y(t[5],ct):e[6]),u=e[7],u&&(t[7]=u),r&xt&&(t[8]=null==t[8]?e[8]:Wl(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i,t}function Bo(t){var e=[];if(null!=t)for(var n in rl(t))e.push(n);return e}function Vo(t){return vl.call(t)}function Wo(t,e,n){return e=Vl(e===nt?t.length-1:e,0),function(){for(var r=arguments,i=-1,a=Vl(r.length-e,0),u=Zs(a);++i<a;)u[i]=r[e+i];i=-1;for(var c=Zs(e+1);++i<e;)c[i]=r[i];return c[e]=n(u),o(t,this,c)}}function zo(t,e){return e.length<2?t:hr(t,ii(e,0,-1))}function Ho(t,e){for(var n=t.length,r=Wl(e.length,n),i=Oi(t);r--;){var o=e[r];t[r]=Ao(o,n)?i[o]:nt}return t}function qo(t,e){if(\"__proto__\"!=e)return t[e]}function Yo(t,e,n){var r=e+\"\";return Tf(t,So(r,Qo(Co(r),n)))}function Ko(t){var e=0,n=0;return function(){var r=zl(),i=Tt-(r-n);if(n=r,i>0){if(++e>=Mt)return arguments[0]}else e=0;return t.apply(nt,arguments)}}function Go(t,e){var n=-1,r=t.length,i=r-1;for(e=e===nt?r:e;++n<e;){var o=Xr(n,i),a=t[o];t[o]=t[n],t[n]=a}return t.length=e,t}function $o(t){if(\"string\"==typeof t||pc(t))return t;var e=t+\"\";return\"0\"==e&&1/t==-At?\"-0\":e}function Xo(t){if(null!=t){try{return fl.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"}function Qo(t,e){return u(Ut,function(n){var r=\"_.\"+n[0];e&n[1]&&!f(t,r)&&t.push(r)}),t.sort()}function Zo(t){if(t instanceof y)return t.clone();var e=new i(t.__wrapped__,t.__chain__);return e.__actions__=Oi(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}function Jo(t,e,n){e=(n?Po(t,e,n):e===nt)?1:Vl(yc(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var i=0,o=0,a=Zs(Dl(r/e));i<r;)a[o++]=ii(t,i,i+=e);return a}function ta(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i}function ea(){var t=arguments.length;if(!t)return[];for(var e=Zs(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return d(hp(n)?Oi(n):[n],sr(e,1))}function na(t,e,n){var r=null==t?0:t.length;return r?(e=n||e===nt?1:yc(e),ii(t,e<0?0:e,r)):[]}function ra(t,e,n){var r=null==t?0:t.length;return r?(e=n||e===nt?1:yc(e),e=r-e,ii(t,0,e<0?0:e)):[]}function ia(t,e){return t&&t.length?di(t,mo(e,3),!0,!0):[]}function oa(t,e){return t&&t.length?di(t,mo(e,3),!0):[]}function aa(t,e,n,r){var i=null==t?0:t.length;return i?(n&&\"number\"!=typeof n&&Po(t,e,n)&&(n=0,r=i),ur(t,e,n,r)):[]}function ua(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:yc(n);return i<0&&(i=Vl(r+i,0)),x(t,mo(e,3),i)}function ca(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r-1;return n!==nt&&(i=yc(n),i=n<0?Vl(r+i,0):Wl(i,r-1)),x(t,mo(e,3),i,!0)}function sa(t){return(null==t?0:t.length)?sr(t,1):[]}function la(t){return(null==t?0:t.length)?sr(t,At):[]}function fa(t,e){return(null==t?0:t.length)?(e=e===nt?1:yc(e),sr(t,e)):[]}function pa(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r}function ha(t){return t&&t.length?t[0]:nt}function da(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:yc(n);return i<0&&(i=Vl(r+i,0)),w(t,e,i)}function va(t){return(null==t?0:t.length)?ii(t,0,-1):[]}function ga(t,e){return null==t?\"\":jl.call(t,e)}function ma(t){var e=null==t?0:t.length;return e?t[e-1]:nt}function ya(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r;return n!==nt&&(i=yc(n),i=i<0?Vl(r+i,0):Wl(i,r-1)),e===e?X(t,e,i):x(t,k,i,!0)}function _a(t,e){return t&&t.length?zr(t,yc(e)):nt}function ba(t,e){return t&&t.length&&e&&e.length?Gr(t,e):t}function xa(t,e,n){return t&&t.length&&e&&e.length?Gr(t,e,mo(n,2)):t}function wa(t,e,n){return t&&t.length&&e&&e.length?Gr(t,e,nt,n):t}function Ca(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=mo(e,3);++r<o;){var a=t[r];e(a,r,t)&&(n.push(a),i.push(r))}return $r(t,i),n}function ka(t){return null==t?t:Yl.call(t)}function Ea(t,e,n){var r=null==t?0:t.length;return r?(n&&\"number\"!=typeof n&&Po(t,e,n)?(e=0,n=r):(e=null==e?0:yc(e),n=n===nt?r:yc(n)),ii(t,e,n)):[]}function Ma(t,e){return ai(t,e)}function Ta(t,e,n){return ui(t,e,mo(n,2))}function Sa(t,e){var n=null==t?0:t.length;if(n){var r=ai(t,e);if(r<n&&Vu(t[r],e))return r}return-1}function Na(t,e){return ai(t,e,!0)}function Aa(t,e,n){return ui(t,e,mo(n,2),!0)}function Pa(t,e){if(null==t?0:t.length){var n=ai(t,e,!0)-1;if(Vu(t[n],e))return n}return-1}function Oa(t){return t&&t.length?ci(t):[]}function Ia(t,e){return t&&t.length?ci(t,mo(e,2)):[]}function Da(t){var e=null==t?0:t.length;return e?ii(t,1,e):[]}function Ra(t,e,n){return t&&t.length?(e=n||e===nt?1:yc(e),ii(t,0,e<0?0:e)):[]}function La(t,e,n){var r=null==t?0:t.length;return r?(e=n||e===nt?1:yc(e),e=r-e,ii(t,e<0?0:e,r)):[]}function Ua(t,e){return t&&t.length?di(t,mo(e,3),!1,!0):[]}function Fa(t,e){return t&&t.length?di(t,mo(e,3)):[]}function ja(t){return t&&t.length?fi(t):[]}function Ba(t,e){return t&&t.length?fi(t,mo(e,2)):[]}function Va(t,e){return e=\"function\"==typeof e?e:nt,t&&t.length?fi(t,nt,e):[]}function Wa(t){if(!t||!t.length)return[];var e=0;return t=l(t,function(t){if(zu(t))return e=Vl(t.length,e),!0}),P(e,function(e){return h(t,M(e))})}function za(t,e){if(!t||!t.length)return[];var n=Wa(t);return null==e?n:h(n,function(t){return o(e,nt,t)})}function Ha(t,e){return mi(t||[],e||[],Wn)}function qa(t,e){return mi(t||[],e||[],ni)}function Ya(t){var e=n(t);return e.__chain__=!0,e}function Ka(t,e){return e(t),t}function Ga(t,e){return e(t)}function $a(){return Ya(this)}function Xa(){return new i(this.value(),this.__chain__)}function Qa(){this.__values__===nt&&(this.__values__=gc(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?nt:this.__values__[this.__index__++]}}function Za(){return this}function Ja(t){for(var e,n=this;n instanceof r;){var i=Zo(n);i.__index__=0,i.__values__=nt,e?o.__wrapped__=i:e=i;var o=i;n=n.__wrapped__}return o.__wrapped__=t,e}function tu(){var t=this.__wrapped__;if(t instanceof y){var e=t;return this.__actions__.length&&(e=new y(this)),e=e.reverse(),e.__actions__.push({func:Ga,args:[ka],thisArg:nt}),new i(e,this.__chain__)}return this.thru(ka)}function eu(){return vi(this.__wrapped__,this.__actions__)}function nu(t,e,n){var r=hp(t)?s:or;return n&&Po(t,e,n)&&(e=nt),r(t,mo(e,3))}function ru(t,e){return(hp(t)?l:cr)(t,mo(e,3))}function iu(t,e){return sr(lu(t,e),1)}function ou(t,e){return sr(lu(t,e),At)}function au(t,e,n){return n=n===nt?1:yc(n),sr(lu(t,e),n)}function uu(t,e){return(hp(t)?u:ff)(t,mo(e,3))}function cu(t,e){return(hp(t)?c:pf)(t,mo(e,3))}function su(t,e,n,r){t=Wu(t)?t:$c(t),n=n&&!r?yc(n):0;var i=t.length;return n<0&&(n=Vl(i+n,0)),fc(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&w(t,e,n)>-1}function lu(t,e){return(hp(t)?h:Fr)(t,mo(e,3))}function fu(t,e,n,r){return null==t?[]:(hp(e)||(e=null==e?[]:[e]),n=r?nt:n,hp(n)||(n=null==n?[]:[n]),Hr(t,e,n))}function pu(t,e,n){var r=hp(t)?v:S,i=arguments.length<3;return r(t,mo(e,4),n,i,ff)}function hu(t,e,n){var r=hp(t)?g:S,i=arguments.length<3;return r(t,mo(e,4),n,i,pf)}function du(t,e){return(hp(t)?l:cr)(t,Su(mo(e,3)))}function vu(t){return(hp(t)?Pn:ti)(t)}function gu(t,e,n){return e=(n?Po(t,e,n):e===nt)?1:yc(e),(hp(t)?On:ei)(t,e)}function mu(t){return(hp(t)?Dn:ri)(t)}function yu(t){if(null==t)return 0;if(Wu(t))return fc(t)?Q(t):t.length;var e=Cf(t);return e==Kt||e==Jt?t.size:Rr(t).length}function _u(t,e,n){var r=hp(t)?m:oi;return n&&Po(t,e,n)&&(e=nt),r(t,mo(e,3))}function bu(t,e){if(\"function\"!=typeof e)throw new al(ot);return t=yc(t),function(){if(--t<1)return e.apply(this,arguments)}}function xu(t,e,n){return e=n?nt:e,e=t&&null==e?t.length:e,io(t,xt,nt,nt,nt,nt,e)}function wu(t,e){var n;if(\"function\"!=typeof e)throw new al(ot);return t=yc(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=nt),n}}function Cu(t,e,n){e=n?nt:e;var r=io(t,mt,nt,nt,nt,nt,nt,e);return r.placeholder=Cu.placeholder,r}function ku(t,e,n){e=n?nt:e;var r=io(t,yt,nt,nt,nt,nt,nt,e);return r.placeholder=ku.placeholder,r}function Eu(t,e,n){function r(e){var n=p,r=h;return p=h=nt,y=e,v=t.apply(r,n)}function i(t){return y=t,g=Mf(u,e),_?r(t):v}function o(t){var n=t-m,r=t-y,i=e-n;return b?Wl(i,d-r):i}function a(t){var n=t-m,r=t-y;return m===nt||n>=e||n<0||b&&r>=d}function u(){var t=ep();if(a(t))return c(t);g=Mf(u,o(t))}function c(t){return g=nt,x&&p?r(t):(p=h=nt,v)}function s(){g!==nt&&yf(g),y=0,p=m=h=g=nt}function l(){return g===nt?v:c(ep())}function f(){var t=ep(),n=a(t);if(p=arguments,h=this,m=t,n){if(g===nt)return i(m);if(b)return g=Mf(u,e),r(m)}return g===nt&&(g=Mf(u,e)),v}var p,h,d,v,g,m,y=0,_=!1,b=!1,x=!0;if(\"function\"!=typeof t)throw new al(ot);return e=bc(e)||0,tc(n)&&(_=!!n.leading,b=\"maxWait\"in n,d=b?Vl(bc(n.maxWait)||0,e):d,x=\"trailing\"in n?!!n.trailing:x),f.cancel=s,f.flush=l,f}function Mu(t){return io(t,Ct)}function Tu(t,e){if(\"function\"!=typeof t||null!=e&&\"function\"!=typeof e)throw new al(ot);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Tu.Cache||an),n}function Su(t){if(\"function\"!=typeof t)throw new al(ot);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Nu(t){return wu(2,t)}function Au(t,e){if(\"function\"!=typeof t)throw new al(ot);return e=e===nt?e:yc(e),Jr(t,e)}function Pu(t,e){if(\"function\"!=typeof t)throw new al(ot);return e=null==e?0:Vl(yc(e),0),Jr(function(n){var r=n[e],i=xi(n,0,e);return r&&d(i,r),o(t,this,i)})}function Ou(t,e,n){var r=!0,i=!0;if(\"function\"!=typeof t)throw new al(ot);return tc(n)&&(r=\"leading\"in n?!!n.leading:r,i=\"trailing\"in n?!!n.trailing:i),Eu(t,e,{leading:r,maxWait:e,trailing:i})}function Iu(t){return xu(t,1)}function Du(t,e){return up(_i(e),t)}function Ru(){if(!arguments.length)return[];var t=arguments[0];return hp(t)?t:[t]}function Lu(t){return tr(t,ft)}function Uu(t,e){return e=\"function\"==typeof e?e:nt,tr(t,ft,e)}function Fu(t){return tr(t,st|ft)}function ju(t,e){return e=\"function\"==typeof e?e:nt,tr(t,st|ft,e)}function Bu(t,e){return null==e||nr(t,e,Lc(e))}function Vu(t,e){return t===e||t!==t&&e!==e}function Wu(t){return null!=t&&Ju(t.length)&&!Qu(t)}function zu(t){return ec(t)&&Wu(t)}function Hu(t){return!0===t||!1===t||ec(t)&&vr(t)==Vt}function qu(t){return ec(t)&&1===t.nodeType&&!sc(t)}function Yu(t){if(null==t)return!0;if(Wu(t)&&(hp(t)||\"string\"==typeof t||\"function\"==typeof t.splice||vp(t)||bp(t)||pp(t)))return!t.length;var e=Cf(t);if(e==Kt||e==Jt)return!t.size;if(Lo(t))return!Rr(t).length;for(var n in t)if(pl.call(t,n))return!1;return!0}function Ku(t,e){return Mr(t,e)}function Gu(t,e,n){n=\"function\"==typeof n?n:nt;var r=n?n(t,e):nt;return r===nt?Mr(t,e,nt,n):!!r}function $u(t){if(!ec(t))return!1;var e=vr(t);return e==Ht||e==zt||\"string\"==typeof t.message&&\"string\"==typeof t.name&&!sc(t)}function Xu(t){return\"number\"==typeof t&&Fl(t)}function Qu(t){if(!tc(t))return!1;var e=vr(t);return e==qt||e==Yt||e==Bt||e==Qt}function Zu(t){return\"number\"==typeof t&&t==yc(t)}function Ju(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=Pt}function tc(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}function ec(t){return null!=t&&\"object\"==typeof t}function nc(t,e){return t===e||Nr(t,e,_o(e))}function rc(t,e,n){return n=\"function\"==typeof n?n:nt,Nr(t,e,_o(e),n)}function ic(t){return cc(t)&&t!=+t}function oc(t){if(kf(t))throw new tl(it);return Ar(t)}function ac(t){return null===t}function uc(t){return null==t}function cc(t){return\"number\"==typeof t||ec(t)&&vr(t)==Gt}function sc(t){if(!ec(t)||vr(t)!=Xt)return!1;var e=Cl(t);if(null===e)return!0;var n=pl.call(e,\"constructor\")&&e.constructor;return\"function\"==typeof n&&n instanceof n&&fl.call(n)==gl}function lc(t){return Zu(t)&&t>=-Pt&&t<=Pt}function fc(t){return\"string\"==typeof t||!hp(t)&&ec(t)&&vr(t)==te}function pc(t){return\"symbol\"==typeof t||ec(t)&&vr(t)==ee}function hc(t){return t===nt}function dc(t){return ec(t)&&Cf(t)==re}function vc(t){return ec(t)&&vr(t)==ie}function gc(t){if(!t)return[];if(Wu(t))return fc(t)?Z(t):Oi(t);if(Sl&&t[Sl])return z(t[Sl]());var e=Cf(t);return(e==Kt?H:e==Jt?K:$c)(t)}function mc(t){if(!t)return 0===t?t:0;if((t=bc(t))===At||t===-At){return(t<0?-1:1)*Ot}return t===t?t:0}function yc(t){var e=mc(t),n=e%1;return e===e?n?e-n:e:0}function _c(t){return t?Jn(yc(t),0,Dt):0}function bc(t){if(\"number\"==typeof t)return t;if(pc(t))return It;if(tc(t)){var e=\"function\"==typeof t.valueOf?t.valueOf():t;t=tc(e)?e+\"\":e}if(\"string\"!=typeof t)return 0===t?t:+t;t=t.replace(Pe,\"\");var n=We.test(t);return n||He.test(t)?Tn(t.slice(2),n?2:8):Ve.test(t)?It:+t}function xc(t){return Ii(t,Uc(t))}function wc(t){return t?Jn(yc(t),-Pt,Pt):0===t?t:0}function Cc(t){return null==t?\"\":li(t)}function kc(t,e){var n=lf(t);return null==e?n:$n(n,e)}function Ec(t,e){return b(t,mo(e,3),lr)}function Mc(t,e){return b(t,mo(e,3),fr)}function Tc(t,e){return null==t?t:hf(t,mo(e,3),Uc)}function Sc(t,e){return null==t?t:df(t,mo(e,3),Uc)}function Nc(t,e){return t&&lr(t,mo(e,3))}function Ac(t,e){return t&&fr(t,mo(e,3))}function Pc(t){return null==t?[]:pr(t,Lc(t))}function Oc(t){return null==t?[]:pr(t,Uc(t))}function Ic(t,e,n){var r=null==t?nt:hr(t,e);return r===nt?n:r}function Dc(t,e){return null!=t&&ko(t,e,mr)}function Rc(t,e){return null!=t&&ko(t,e,yr)}function Lc(t){return Wu(t)?Nn(t):Rr(t)}function Uc(t){return Wu(t)?Nn(t,!0):Lr(t)}function Fc(t,e){var n={};return e=mo(e,3),lr(t,function(t,r,i){Qn(n,e(t,r,i),t)}),n}function jc(t,e){var n={};return e=mo(e,3),lr(t,function(t,r,i){Qn(n,r,e(t,r,i))}),n}function Bc(t,e){return Vc(t,Su(mo(e)))}function Vc(t,e){if(null==t)return{};var n=h(ho(t),function(t){return[t]});return e=mo(e),Yr(t,n,function(t,n){return e(t,n[0])})}function Wc(t,e,n){e=bi(e,t);var r=-1,i=e.length;for(i||(i=1,t=nt);++r<i;){var o=null==t?nt:t[$o(e[r])];o===nt&&(r=i,o=n),t=Qu(o)?o.call(t):o}return t}function zc(t,e,n){return null==t?t:ni(t,e,n)}function Hc(t,e,n,r){return r=\"function\"==typeof r?r:nt,null==t?t:ni(t,e,n,r)}function qc(t,e,n){var r=hp(t),i=r||vp(t)||bp(t);if(e=mo(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:tc(t)&&Qu(o)?lf(Cl(t)):{}}return(i?u:lr)(t,function(t,r,i){return e(n,t,r,i)}),n}function Yc(t,e){return null==t||pi(t,e)}function Kc(t,e,n){return null==t?t:hi(t,e,_i(n))}function Gc(t,e,n,r){return r=\"function\"==typeof r?r:nt,null==t?t:hi(t,e,_i(n),r)}function $c(t){return null==t?[]:D(t,Lc(t))}function Xc(t){return null==t?[]:D(t,Uc(t))}function Qc(t,e,n){return n===nt&&(n=e,e=nt),n!==nt&&(n=bc(n),n=n===n?n:0),e!==nt&&(e=bc(e),e=e===e?e:0),Jn(bc(t),e,n)}function Zc(t,e,n){return e=mc(e),n===nt?(n=e,e=0):n=mc(n),t=bc(t),_r(t,e,n)}function Jc(t,e,n){if(n&&\"boolean\"!=typeof n&&Po(t,e,n)&&(e=n=nt),n===nt&&(\"boolean\"==typeof e?(n=e,e=nt):\"boolean\"==typeof t&&(n=t,t=nt)),t===nt&&e===nt?(t=0,e=1):(t=mc(t),e===nt?(e=t,t=0):e=mc(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var i=ql();return Wl(t+i*(e-t+Mn(\"1e-\"+((i+\"\").length-1))),e)}return Xr(t,e)}function ts(t){return Yp(Cc(t).toLowerCase())}function es(t){return(t=Cc(t))&&t.replace(Ye,zn).replace(hn,\"\")}function ns(t,e,n){t=Cc(t),e=li(e);var r=t.length;n=n===nt?r:Jn(yc(n),0,r);var i=n;return(n-=e.length)>=0&&t.slice(n,i)==e}function rs(t){return t=Cc(t),t&&we.test(t)?t.replace(be,Hn):t}function is(t){return t=Cc(t),t&&Ae.test(t)?t.replace(Ne,\"\\\\$&\"):t}function os(t,e,n){t=Cc(t),e=yc(e);var r=e?Q(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Qi(Rl(i),n)+t+Qi(Dl(i),n)}function as(t,e,n){t=Cc(t),e=yc(e);var r=e?Q(t):0;return e&&r<e?t+Qi(e-r,n):t}function us(t,e,n){t=Cc(t),e=yc(e);var r=e?Q(t):0;return e&&r<e?Qi(e-r,n)+t:t}function cs(t,e,n){return n||null==e?e=0:e&&(e=+e),Hl(Cc(t).replace(Oe,\"\"),e||0)}function ss(t,e,n){return e=(n?Po(t,e,n):e===nt)?1:yc(e),Zr(Cc(t),e)}function ls(){var t=arguments,e=Cc(t[0]);return t.length<3?e:e.replace(t[1],t[2])}function fs(t,e,n){return n&&\"number\"!=typeof n&&Po(t,e,n)&&(e=n=nt),(n=n===nt?Dt:n>>>0)?(t=Cc(t),t&&(\"string\"==typeof e||null!=e&&!yp(e))&&!(e=li(e))&&V(t)?xi(Z(t),0,n):t.split(e,n)):[]}function ps(t,e,n){return t=Cc(t),n=null==n?0:Jn(yc(n),0,t.length),e=li(e),t.slice(n,n+e.length)==e}function hs(t,e,r){var i=n.templateSettings;r&&Po(t,e,r)&&(e=nt),t=Cc(t),e=Ep({},e,i,oo);var o,a,u=Ep({},e.imports,i.imports,oo),c=Lc(u),s=D(u,c),l=0,f=e.interpolate||Ke,p=\"__p += '\",h=il((e.escape||Ke).source+\"|\"+f.source+\"|\"+(f===Ee?je:Ke).source+\"|\"+(e.evaluate||Ke).source+\"|$\",\"g\"),d=\"//# sourceURL=\"+(\"sourceURL\"in e?e.sourceURL:\"lodash.templateSources[\"+ ++_n+\"]\")+\"\\n\";t.replace(h,function(e,n,r,i,u,c){return r||(r=i),p+=t.slice(l,c).replace(Ge,j),n&&(o=!0,p+=\"' +\\n__e(\"+n+\") +\\n'\"),u&&(a=!0,p+=\"';\\n\"+u+\";\\n__p += '\"),r&&(p+=\"' +\\n((__t = (\"+r+\")) == null ? '' : __t) +\\n'\"),l=c+e.length,e}),p+=\"';\\n\";var v=e.variable;v||(p=\"with (obj) {\\n\"+p+\"\\n}\\n\"),p=(a?p.replace(ge,\"\"):p).replace(me,\"$1\").replace(ye,\"$1;\"),p=\"function(\"+(v||\"obj\")+\") {\\n\"+(v?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(o?\", __e = _.escape\":\"\")+(a?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+p+\"return __p\\n}\";var g=Kp(function(){return el(c,d+\"return \"+p).apply(nt,s)});if(g.source=p,$u(g))throw g;return g}function ds(t){return Cc(t).toLowerCase()}function vs(t){return Cc(t).toUpperCase()}function gs(t,e,n){if((t=Cc(t))&&(n||e===nt))return t.replace(Pe,\"\");if(!t||!(e=li(e)))return t;var r=Z(t),i=Z(e);return xi(r,L(r,i),U(r,i)+1).join(\"\")}function ms(t,e,n){if((t=Cc(t))&&(n||e===nt))return t.replace(Ie,\"\");if(!t||!(e=li(e)))return t;var r=Z(t);return xi(r,0,U(r,Z(e))+1).join(\"\")}function ys(t,e,n){if((t=Cc(t))&&(n||e===nt))return t.replace(Oe,\"\");if(!t||!(e=li(e)))return t;var r=Z(t);return xi(r,L(r,Z(e))).join(\"\")}function _s(t,e){var n=kt,r=Et;if(tc(e)){var i=\"separator\"in e?e.separator:i;n=\"length\"in e?yc(e.length):n,r=\"omission\"in e?li(e.omission):r}t=Cc(t);var o=t.length;if(V(t)){var a=Z(t);o=a.length}if(n>=o)return t;var u=n-Q(r);if(u<1)return r;var c=a?xi(a,0,u).join(\"\"):t.slice(0,u);if(i===nt)return c+r;if(a&&(u+=c.length-u),yp(i)){if(t.slice(u).search(i)){var s,l=c;for(i.global||(i=il(i.source,Cc(Be.exec(i))+\"g\")),i.lastIndex=0;s=i.exec(l);)var f=s.index;c=c.slice(0,f===nt?u:f)}}else if(t.indexOf(li(i),u)!=u){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+r}function bs(t){return t=Cc(t),t&&xe.test(t)?t.replace(_e,qn):t}function xs(t,e,n){return t=Cc(t),e=n?nt:e,e===nt?W(t)?et(t):_(t):t.match(e)||[]}function ws(t){var e=null==t?0:t.length,n=mo();return t=e?h(t,function(t){if(\"function\"!=typeof t[1])throw new al(ot);return[n(t[0]),t[1]]}):[],Jr(function(n){for(var r=-1;++r<e;){var i=t[r];if(o(i[0],this,n))return o(i[1],this,n)}})}function Cs(t){return er(tr(t,st))}function ks(t){return function(){return t}}function Es(t,e){return null==t||t!==t?e:t}function Ms(t){return t}function Ts(t){return Dr(\"function\"==typeof t?t:tr(t,st))}function Ss(t){return jr(tr(t,st))}function Ns(t,e){return Br(t,tr(e,st))}function As(t,e,n){var r=Lc(e),i=pr(e,r);null!=n||tc(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=pr(e,Lc(e)));var o=!(tc(n)&&\"chain\"in n&&!n.chain),a=Qu(t);return u(i,function(n){var r=e[n];t[n]=r,a&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=Oi(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,d([this.value()],arguments))})}),t}function Ps(){return An._===this&&(An._=ml),this}function Os(){}function Is(t){return t=yc(t),Jr(function(e){return zr(e,t)})}function Ds(t){return Oo(t)?M($o(t)):Kr(t)}function Rs(t){return function(e){return null==t?nt:hr(t,e)}}function Ls(){return[]}function Us(){return!1}function Fs(){return{}}function js(){return\"\"}function Bs(){return!0}function Vs(t,e){if((t=yc(t))<1||t>Pt)return[];var n=Dt,r=Wl(t,Dt);e=mo(e),t-=Dt;for(var i=P(r,e);++n<t;)e(n);return i}function Ws(t){return hp(t)?h(t,$o):pc(t)?[t]:Oi(Sf(Cc(t)))}function zs(t){var e=++hl;return Cc(t)+e}function Hs(t){return t&&t.length?ar(t,Ms,gr):nt}function qs(t,e){return t&&t.length?ar(t,mo(e,2),gr):nt}function Ys(t){return E(t,Ms)}function Ks(t,e){return E(t,mo(e,2))}function Gs(t){return t&&t.length?ar(t,Ms,Ur):nt}function $s(t,e){return t&&t.length?ar(t,mo(e,2),Ur):nt}function Xs(t){return t&&t.length?A(t,Ms):0}function Qs(t,e){return t&&t.length?A(t,mo(e,2)):0}e=null==e?An:Yn.defaults(An.Object(),e,Yn.pick(An,yn));var Zs=e.Array,Js=e.Date,tl=e.Error,el=e.Function,nl=e.Math,rl=e.Object,il=e.RegExp,ol=e.String,al=e.TypeError,ul=Zs.prototype,cl=el.prototype,sl=rl.prototype,ll=e[\"__core-js_shared__\"],fl=cl.toString,pl=sl.hasOwnProperty,hl=0,dl=function(){var t=/[^.]+$/.exec(ll&&ll.keys&&ll.keys.IE_PROTO||\"\");return t?\"Symbol(src)_1.\"+t:\"\"}(),vl=sl.toString,gl=fl.call(rl),ml=An._,yl=il(\"^\"+fl.call(pl).replace(Ne,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),_l=In?e.Buffer:nt,bl=e.Symbol,xl=e.Uint8Array,wl=_l?_l.allocUnsafe:nt,Cl=q(rl.getPrototypeOf,rl),kl=rl.create,El=sl.propertyIsEnumerable,Ml=ul.splice,Tl=bl?bl.isConcatSpreadable:nt,Sl=bl?bl.iterator:nt,Nl=bl?bl.toStringTag:nt,Al=function(){try{var t=bo(rl,\"defineProperty\");return t({},\"\",{}),t}catch(t){}}(),Pl=e.clearTimeout!==An.clearTimeout&&e.clearTimeout,Ol=Js&&Js.now!==An.Date.now&&Js.now,Il=e.setTimeout!==An.setTimeout&&e.setTimeout,Dl=nl.ceil,Rl=nl.floor,Ll=rl.getOwnPropertySymbols,Ul=_l?_l.isBuffer:nt,Fl=e.isFinite,jl=ul.join,Bl=q(rl.keys,rl),Vl=nl.max,Wl=nl.min,zl=Js.now,Hl=e.parseInt,ql=nl.random,Yl=ul.reverse,Kl=bo(e,\"DataView\"),Gl=bo(e,\"Map\"),$l=bo(e,\"Promise\"),Xl=bo(e,\"Set\"),Ql=bo(e,\"WeakMap\"),Zl=bo(rl,\"create\"),Jl=Ql&&new Ql,tf={},ef=Xo(Kl),nf=Xo(Gl),rf=Xo($l),of=Xo(Xl),af=Xo(Ql),uf=bl?bl.prototype:nt,cf=uf?uf.valueOf:nt,sf=uf?uf.toString:nt,lf=function(){function t(){}return function(e){if(!tc(e))return{};if(kl)return kl(e);t.prototype=e;var n=new t;return t.prototype=nt,n}}();n.templateSettings={escape:Ce,evaluate:ke,interpolate:Ee,variable:\"\",imports:{_:n}},n.prototype=r.prototype,n.prototype.constructor=n,i.prototype=lf(r.prototype),i.prototype.constructor=i,y.prototype=lf(r.prototype),y.prototype.constructor=y,tt.prototype.clear=Ue,tt.prototype.delete=$e,tt.prototype.get=Xe,tt.prototype.has=Qe,tt.prototype.set=Ze,Je.prototype.clear=tn,Je.prototype.delete=en,Je.prototype.get=nn,Je.prototype.has=rn,Je.prototype.set=on,an.prototype.clear=un,an.prototype.delete=cn,an.prototype.get=sn,an.prototype.has=ln,an.prototype.set=fn,dn.prototype.add=dn.prototype.push=vn,dn.prototype.has=gn,mn.prototype.clear=wn,mn.prototype.delete=Cn,mn.prototype.get=kn,mn.prototype.has=En,mn.prototype.set=Sn;var ff=Fi(lr),pf=Fi(fr,!0),hf=ji(),df=ji(!0),vf=Jl?function(t,e){return Jl.set(t,e),t}:Ms,gf=Al?function(t,e){return Al(t,\"toString\",{configurable:!0,enumerable:!1,value:ks(e),writable:!0})}:Ms,mf=Jr,yf=Pl||function(t){return An.clearTimeout(t)},_f=Xl&&1/K(new Xl([,-0]))[1]==At?function(t){return new Xl(t)}:Os,bf=Jl?function(t){return Jl.get(t)}:Os,xf=Ll?function(t){return null==t?[]:(t=rl(t),l(Ll(t),function(e){return El.call(t,e)}))}:Ls,wf=Ll?function(t){for(var e=[];t;)d(e,xf(t)),t=Cl(t);return e}:Ls,Cf=vr;(Kl&&Cf(new Kl(new ArrayBuffer(1)))!=ae||Gl&&Cf(new Gl)!=Kt||$l&&\"[object Promise]\"!=Cf($l.resolve())||Xl&&Cf(new Xl)!=Jt||Ql&&Cf(new Ql)!=re)&&(Cf=function(t){var e=vr(t),n=e==Xt?t.constructor:nt,r=n?Xo(n):\"\";if(r)switch(r){case ef:return ae;case nf:return Kt;case rf:return\"[object Promise]\";case of:return Jt;case af:return re}return e});var kf=ll?Qu:Us,Ef=Ko(vf),Mf=Il||function(t,e){return An.setTimeout(t,e)},Tf=Ko(gf),Sf=function(t){var e=Tu(t,function(t){return n.size===ut&&n.clear(),t}),n=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(\"\"),t.replace(Se,function(t,n,r,i){e.push(r?i.replace(Fe,\"$1\"):n||t)}),e}),Nf=Jr(function(t,e){return zu(t)?ir(t,sr(e,1,zu,!0)):[]}),Af=Jr(function(t,e){var n=ma(e);return zu(n)&&(n=nt),zu(t)?ir(t,sr(e,1,zu,!0),mo(n,2)):[]}),Pf=Jr(function(t,e){var n=ma(e);return zu(n)&&(n=nt),zu(t)?ir(t,sr(e,1,zu,!0),nt,n):[]}),Of=Jr(function(t){var e=h(t,yi);return e.length&&e[0]===t[0]?br(e):[]}),If=Jr(function(t){var e=ma(t),n=h(t,yi);return e===ma(n)?e=nt:n.pop(),n.length&&n[0]===t[0]?br(n,mo(e,2)):[]}),Df=Jr(function(t){var e=ma(t),n=h(t,yi);return e=\"function\"==typeof e?e:nt,e&&n.pop(),n.length&&n[0]===t[0]?br(n,nt,e):[]}),Rf=Jr(ba),Lf=fo(function(t,e){var n=null==t?0:t.length,r=Zn(t,e);return $r(t,h(e,function(t){return Ao(t,n)?+t:t}).sort(Si)),r}),Uf=Jr(function(t){return fi(sr(t,1,zu,!0))}),Ff=Jr(function(t){var e=ma(t);return zu(e)&&(e=nt),fi(sr(t,1,zu,!0),mo(e,2))}),jf=Jr(function(t){var e=ma(t);return e=\"function\"==typeof e?e:nt,fi(sr(t,1,zu,!0),nt,e)}),Bf=Jr(function(t,e){return zu(t)?ir(t,e):[]}),Vf=Jr(function(t){return gi(l(t,zu))}),Wf=Jr(function(t){var e=ma(t);return zu(e)&&(e=nt),gi(l(t,zu),mo(e,2))}),zf=Jr(function(t){var e=ma(t);return e=\"function\"==typeof e?e:nt,gi(l(t,zu),nt,e)}),Hf=Jr(Wa),qf=Jr(function(t){var e=t.length,n=e>1?t[e-1]:nt;return n=\"function\"==typeof n?(t.pop(),n):nt,za(t,n)}),Yf=fo(function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,o=function(e){return Zn(e,t)};return!(e>1||this.__actions__.length)&&r instanceof y&&Ao(n)?(r=r.slice(n,+n+(e?1:0)),r.__actions__.push({func:Ga,args:[o],thisArg:nt}),new i(r,this.__chain__).thru(function(t){return e&&!t.length&&t.push(nt),t})):this.thru(o)}),Kf=Li(function(t,e,n){pl.call(t,n)?++t[n]:Qn(t,n,1)}),Gf=qi(ua),$f=qi(ca),Xf=Li(function(t,e,n){pl.call(t,n)?t[n].push(e):Qn(t,n,[e])}),Qf=Jr(function(t,e,n){var r=-1,i=\"function\"==typeof e,a=Wu(t)?Zs(t.length):[];return ff(t,function(t){a[++r]=i?o(e,t,n):wr(t,e,n)}),a}),Zf=Li(function(t,e,n){Qn(t,n,e)}),Jf=Li(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),tp=Jr(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Po(t,e[0],e[1])?e=[]:n>2&&Po(e[0],e[1],e[2])&&(e=[e[0]]),Hr(t,sr(e,1),[])}),ep=Ol||function(){return An.Date.now()},np=Jr(function(t,e,n){var r=dt;if(n.length){var i=Y(n,go(np));r|=_t}return io(t,r,e,n,i)}),rp=Jr(function(t,e,n){var r=dt|vt;if(n.length){var i=Y(n,go(rp));r|=_t}return io(e,r,t,n,i)}),ip=Jr(function(t,e){return rr(t,1,e)}),op=Jr(function(t,e,n){return rr(t,bc(e)||0,n)});Tu.Cache=an;var ap=mf(function(t,e){e=1==e.length&&hp(e[0])?h(e[0],I(mo())):h(sr(e,1),I(mo()));var n=e.length;return Jr(function(r){for(var i=-1,a=Wl(r.length,n);++i<a;)r[i]=e[i].call(this,r[i]);return o(t,this,r)})}),up=Jr(function(t,e){var n=Y(e,go(up));return io(t,_t,nt,e,n)}),cp=Jr(function(t,e){var n=Y(e,go(cp));return io(t,bt,nt,e,n)}),sp=fo(function(t,e){return io(t,wt,nt,nt,nt,e)}),lp=to(gr),fp=to(function(t,e){return t>=e}),pp=Cr(function(){return arguments}())?Cr:function(t){return ec(t)&&pl.call(t,\"callee\")&&!El.call(t,\"callee\")},hp=Zs.isArray,dp=Ln?I(Ln):kr,vp=Ul||Us,gp=Un?I(Un):Er,mp=Fn?I(Fn):Sr,yp=jn?I(jn):Pr,_p=Bn?I(Bn):Or,bp=Vn?I(Vn):Ir,xp=to(Ur),wp=to(function(t,e){return t<=e}),Cp=Ui(function(t,e){if(Lo(e)||Wu(e))return void Ii(e,Lc(e),t);for(var n in e)pl.call(e,n)&&Wn(t,n,e[n])}),kp=Ui(function(t,e){Ii(e,Uc(e),t)}),Ep=Ui(function(t,e,n,r){Ii(e,Uc(e),t,r)}),Mp=Ui(function(t,e,n,r){Ii(e,Lc(e),t,r)}),Tp=fo(Zn),Sp=Jr(function(t,e){t=rl(t);var n=-1,r=e.length,i=r>2?e[2]:nt;for(i&&Po(e[0],e[1],i)&&(r=1);++n<r;)for(var o=e[n],a=Uc(o),u=-1,c=a.length;++u<c;){var s=a[u],l=t[s];(l===nt||Vu(l,sl[s])&&!pl.call(t,s))&&(t[s]=o[s])}return t}),Np=Jr(function(t){return t.push(nt,ao),o(Dp,nt,t)}),Ap=Gi(function(t,e,n){null!=e&&\"function\"!=typeof e.toString&&(e=vl.call(e)),t[e]=n},ks(Ms)),Pp=Gi(function(t,e,n){null!=e&&\"function\"!=typeof e.toString&&(e=vl.call(e)),pl.call(t,e)?t[e].push(n):t[e]=[n]},mo),Op=Jr(wr),Ip=Ui(function(t,e,n){Vr(t,e,n)}),Dp=Ui(function(t,e,n,r){Vr(t,e,n,r)}),Rp=fo(function(t,e){var n={};if(null==t)return n;var r=!1;e=h(e,function(e){return e=bi(e,t),r||(r=e.length>1),e}),Ii(t,ho(t),n),r&&(n=tr(n,st|lt|ft,uo));for(var i=e.length;i--;)pi(n,e[i]);return n}),Lp=fo(function(t,e){return null==t?{}:qr(t,e)}),Up=ro(Lc),Fp=ro(Uc),jp=Wi(function(t,e,n){return e=e.toLowerCase(),t+(n?ts(e):e)}),Bp=Wi(function(t,e,n){return t+(n?\"-\":\"\")+e.toLowerCase()}),Vp=Wi(function(t,e,n){return t+(n?\" \":\"\")+e.toLowerCase()}),Wp=Vi(\"toLowerCase\"),zp=Wi(function(t,e,n){return t+(n?\"_\":\"\")+e.toLowerCase()}),Hp=Wi(function(t,e,n){return t+(n?\" \":\"\")+Yp(e)}),qp=Wi(function(t,e,n){return t+(n?\" \":\"\")+e.toUpperCase()}),Yp=Vi(\"toUpperCase\"),Kp=Jr(function(t,e){try{return o(t,nt,e)}catch(t){return $u(t)?t:new tl(t)}}),Gp=fo(function(t,e){return u(e,function(e){e=$o(e),Qn(t,e,np(t[e],t))}),t}),$p=Yi(),Xp=Yi(!0),Qp=Jr(function(t,e){return function(n){return wr(n,t,e)}}),Zp=Jr(function(t,e){return function(n){return wr(t,n,e)}}),Jp=Xi(h),th=Xi(s),eh=Xi(m),nh=Ji(),rh=Ji(!0),ih=$i(function(t,e){return t+e},0),oh=no(\"ceil\"),ah=$i(function(t,e){return t/e},1),uh=no(\"floor\"),ch=$i(function(t,e){return t*e},1),sh=no(\"round\"),lh=$i(function(t,e){return t-e},0);return n.after=bu,n.ary=xu,n.assign=Cp,n.assignIn=kp,n.assignInWith=Ep,n.assignWith=Mp,n.at=Tp,n.before=wu,n.bind=np,n.bindAll=Gp,n.bindKey=rp,n.castArray=Ru,n.chain=Ya,n.chunk=Jo,n.compact=ta,n.concat=ea,n.cond=ws,n.conforms=Cs,n.constant=ks,n.countBy=Kf,n.create=kc,n.curry=Cu,n.curryRight=ku,n.debounce=Eu,n.defaults=Sp,n.defaultsDeep=Np,n.defer=ip,n.delay=op,n.difference=Nf,n.differenceBy=Af,n.differenceWith=Pf,n.drop=na,n.dropRight=ra,n.dropRightWhile=ia,n.dropWhile=oa,n.fill=aa,n.filter=ru,n.flatMap=iu,n.flatMapDeep=ou,n.flatMapDepth=au,n.flatten=sa,n.flattenDeep=la,n.flattenDepth=fa,n.flip=Mu,n.flow=$p,n.flowRight=Xp,n.fromPairs=pa,n.functions=Pc,n.functionsIn=Oc,n.groupBy=Xf,n.initial=va,n.intersection=Of,n.intersectionBy=If,n.intersectionWith=Df,n.invert=Ap,n.invertBy=Pp,n.invokeMap=Qf,n.iteratee=Ts,n.keyBy=Zf,n.keys=Lc,n.keysIn=Uc,n.map=lu,n.mapKeys=Fc,n.mapValues=jc,n.matches=Ss,n.matchesProperty=Ns,n.memoize=Tu,n.merge=Ip,n.mergeWith=Dp,n.method=Qp,n.methodOf=Zp,n.mixin=As,n.negate=Su,n.nthArg=Is,n.omit=Rp,n.omitBy=Bc,n.once=Nu,n.orderBy=fu,n.over=Jp,n.overArgs=ap,n.overEvery=th,n.overSome=eh,n.partial=up,n.partialRight=cp,n.partition=Jf,n.pick=Lp,n.pickBy=Vc,n.property=Ds,n.propertyOf=Rs,n.pull=Rf,n.pullAll=ba,n.pullAllBy=xa,n.pullAllWith=wa,n.pullAt=Lf,n.range=nh,n.rangeRight=rh,n.rearg=sp,n.reject=du,n.remove=Ca,n.rest=Au,n.reverse=ka,n.sampleSize=gu,n.set=zc,n.setWith=Hc,n.shuffle=mu,n.slice=Ea,n.sortBy=tp,n.sortedUniq=Oa,n.sortedUniqBy=Ia,n.split=fs,n.spread=Pu,n.tail=Da,n.take=Ra,n.takeRight=La,n.takeRightWhile=Ua,n.takeWhile=Fa,n.tap=Ka,n.throttle=Ou,n.thru=Ga,n.toArray=gc,n.toPairs=Up,n.toPairsIn=Fp,n.toPath=Ws,n.toPlainObject=xc,n.transform=qc,n.unary=Iu,n.union=Uf,n.unionBy=Ff,n.unionWith=jf,n.uniq=ja,n.uniqBy=Ba,n.uniqWith=Va,n.unset=Yc,n.unzip=Wa,n.unzipWith=za,n.update=Kc,n.updateWith=Gc,n.values=$c,n.valuesIn=Xc,n.without=Bf,n.words=xs,n.wrap=Du,n.xor=Vf,n.xorBy=Wf,n.xorWith=zf,n.zip=Hf,n.zipObject=Ha,n.zipObjectDeep=qa,n.zipWith=qf,n.entries=Up,n.entriesIn=Fp,n.extend=kp,n.extendWith=Ep,As(n,n),n.add=ih,n.attempt=Kp,n.camelCase=jp,n.capitalize=ts,n.ceil=oh,n.clamp=Qc,n.clone=Lu,n.cloneDeep=Fu,n.cloneDeepWith=ju,n.cloneWith=Uu,n.conformsTo=Bu,n.deburr=es,n.defaultTo=Es,n.divide=ah,n.endsWith=ns,n.eq=Vu,n.escape=rs,n.escapeRegExp=is,n.every=nu,n.find=Gf,n.findIndex=ua,n.findKey=Ec,n.findLast=$f,n.findLastIndex=ca,n.findLastKey=Mc,n.floor=uh,n.forEach=uu,n.forEachRight=cu,n.forIn=Tc,n.forInRight=Sc,n.forOwn=Nc,n.forOwnRight=Ac,n.get=Ic,n.gt=lp,n.gte=fp,n.has=Dc,n.hasIn=Rc,n.head=ha,n.identity=Ms,n.includes=su,n.indexOf=da,n.inRange=Zc,n.invoke=Op,n.isArguments=pp,n.isArray=hp,n.isArrayBuffer=dp,n.isArrayLike=Wu,n.isArrayLikeObject=zu,n.isBoolean=Hu,n.isBuffer=vp,n.isDate=gp,n.isElement=qu,n.isEmpty=Yu,n.isEqual=Ku,n.isEqualWith=Gu,n.isError=$u,n.isFinite=Xu,n.isFunction=Qu,n.isInteger=Zu,n.isLength=Ju,n.isMap=mp,n.isMatch=nc,n.isMatchWith=rc,n.isNaN=ic,n.isNative=oc,n.isNil=uc,n.isNull=ac,n.isNumber=cc,n.isObject=tc,n.isObjectLike=ec,n.isPlainObject=sc,n.isRegExp=yp,n.isSafeInteger=lc,n.isSet=_p,n.isString=fc,n.isSymbol=pc,n.isTypedArray=bp,n.isUndefined=hc,n.isWeakMap=dc,n.isWeakSet=vc,n.join=ga,n.kebabCase=Bp,n.last=ma,n.lastIndexOf=ya,n.lowerCase=Vp,n.lowerFirst=Wp,n.lt=xp,n.lte=wp,n.max=Hs,n.maxBy=qs,n.mean=Ys,n.meanBy=Ks,n.min=Gs,n.minBy=$s,n.stubArray=Ls,n.stubFalse=Us,n.stubObject=Fs,n.stubString=js,n.stubTrue=Bs,n.multiply=ch,n.nth=_a,n.noConflict=Ps,n.noop=Os,n.now=ep,n.pad=os,n.padEnd=as,n.padStart=us,n.parseInt=cs,n.random=Jc,n.reduce=pu,n.reduceRight=hu,n.repeat=ss,n.replace=ls,n.result=Wc,n.round=sh,n.runInContext=t,n.sample=vu,n.size=yu,n.snakeCase=zp,n.some=_u,n.sortedIndex=Ma,n.sortedIndexBy=Ta,n.sortedIndexOf=Sa,n.sortedLastIndex=Na,n.sortedLastIndexBy=Aa,n.sortedLastIndexOf=Pa,n.startCase=Hp,n.startsWith=ps,n.subtract=lh,n.sum=Xs,n.sumBy=Qs,n.template=hs,n.times=Vs,n.toFinite=mc,n.toInteger=yc,n.toLength=_c,n.toLower=ds,n.toNumber=bc,n.toSafeInteger=wc,n.toString=Cc,n.toUpper=vs,n.trim=gs,n.trimEnd=ms,n.trimStart=ys,n.truncate=_s,n.unescape=bs,n.uniqueId=zs,n.upperCase=qp,n.upperFirst=Yp,n.each=uu,n.eachRight=cu,n.first=ha,As(n,function(){var t={};return lr(n,function(e,r){pl.call(n.prototype,r)||(t[r]=e)}),t}(),{chain:!1}),n.VERSION=\"4.17.11\",u([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(t){n[t].placeholder=n}),u([\"drop\",\"take\"],function(t,e){y.prototype[t]=function(n){n=n===nt?1:Vl(yc(n),0);var r=this.__filtered__&&!e?new y(this):this.clone();return r.__filtered__?r.__takeCount__=Wl(n,r.__takeCount__):r.__views__.push({size:Wl(n,Dt),type:t+(r.__dir__<0?\"Right\":\"\")}),r},y.prototype[t+\"Right\"]=function(e){return this.reverse()[t](e).reverse()}}),u([\"filter\",\"map\",\"takeWhile\"],function(t,e){var n=e+1,r=n==St||3==n;y.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:mo(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),u([\"head\",\"last\"],function(t,e){var n=\"take\"+(e?\"Right\":\"\");y.prototype[t]=function(){return this[n](1).value()[0]}}),u([\"initial\",\"tail\"],function(t,e){var n=\"drop\"+(e?\"\":\"Right\");y.prototype[t]=function(){return this.__filtered__?new y(this):this[n](1)}}),y.prototype.compact=function(){return this.filter(Ms)},y.prototype.find=function(t){return this.filter(t).head()},y.prototype.findLast=function(t){return this.reverse().find(t)},y.prototype.invokeMap=Jr(function(t,e){return\"function\"==typeof t?new y(this):this.map(function(n){return wr(n,t,e)})}),y.prototype.reject=function(t){return this.filter(Su(mo(t)))},y.prototype.slice=function(t,e){t=yc(t);var n=this;return n.__filtered__&&(t>0||e<0)?new y(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==nt&&(e=yc(e),n=e<0?n.dropRight(-e):n.take(e-t)),n)},y.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},y.prototype.toArray=function(){return this.take(Dt)},lr(y.prototype,function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),o=/^(?:head|last)$/.test(e),a=n[o?\"take\"+(\"last\"==e?\"Right\":\"\"):e],u=o||/^find/.test(e);a&&(n.prototype[e]=function(){var e=this.__wrapped__,c=o?[1]:arguments,s=e instanceof y,l=c[0],f=s||hp(e),p=function(t){var e=a.apply(n,d([t],c));return o&&h?e[0]:e};f&&r&&\"function\"==typeof l&&1!=l.length&&(s=f=!1);var h=this.__chain__,v=!!this.__actions__.length,g=u&&!h,m=s&&!v;if(!u&&f){e=m?e:new y(this);var _=t.apply(e,c);return _.__actions__.push({func:Ga,args:[p],thisArg:nt}),new i(_,h)}return g&&m?t.apply(this,c):(_=this.thru(p),g?o?_.value()[0]:_.value():_)})}),u([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(t){var e=ul[t],r=/^(?:push|sort|unshift)$/.test(t)?\"tap\":\"thru\",i=/^(?:pop|shift)$/.test(t);n.prototype[t]=function(){var t=arguments;if(i&&!this.__chain__){var n=this.value();return e.apply(hp(n)?n:[],t)}return this[r](function(n){return e.apply(hp(n)?n:[],t)})}}),lr(y.prototype,function(t,e){var r=n[e];if(r){var i=r.name+\"\";(tf[i]||(tf[i]=[])).push({name:e,func:r})}}),tf[Ki(nt,vt).name]=[{name:\"wrapper\",func:nt}],y.prototype.clone=T,y.prototype.reverse=$,y.prototype.value=J,n.prototype.at=Yf,n.prototype.chain=$a,n.prototype.commit=Xa,n.prototype.next=Qa,n.prototype.plant=Ja,n.prototype.reverse=tu,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=eu,n.prototype.first=n.prototype.head,Sl&&(n.prototype[Sl]=Za),n}();An._=Yn,(i=function(){return Yn}.call(e,n,e,r))!==nt&&(r.exports=i)}).call(this)}).call(e,n(98),n(99)(t))},function(t,e,n){\"use strict\";var r={remove:function(t){t._reactInternalInstance=void 0},get:function(t){return t._reactInternalInstance},has:function(t){return void 0!==t._reactInternalInstance},set:function(t,e){t._reactInternalInstance=e}};t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e=arguments.length-1,n=\"Minified React error #\"+t+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=\"+t,r=0;r<e;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);n+=\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";var i=new Error(n);throw i.name=\"Invariant Violation\",i.framesToPop=1,i}t.exports=r},function(t,e,n){\"use strict\";t.exports=n(26)},function(t,e,n){\"use strict\";var r=n(63);e.a=function(t){return t=n.i(r.a)(Math.abs(t)),t?t[1]:NaN}},function(t,e,n){\"use strict\";e.a=function(t,e){return t=+t,e-=t,function(n){return t+e*n}}},function(t,e,n){\"use strict\";function r(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:n.i(h.a)(e)}function i(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=e?0:t>=n?1:r(t)}}}function o(t){return function(e,n){var r=t(e=+e,n=+n);return function(t){return t<=0?e:t>=1?n:r(t)}}}function a(t,e,n,r){var i=t[0],o=t[1],a=e[0],u=e[1];return o<i?(i=n(o,i),a=r(u,a)):(i=n(i,o),a=r(a,u)),function(t){return a(i(t))}}function u(t,e,r,i){var o=Math.min(t.length,e.length)-1,a=new Array(o),u=new Array(o),c=-1;for(t[o]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++c<o;)a[c]=r(t[c],t[c+1]),u[c]=i(e[c],e[c+1]);return function(e){var r=n.i(l.bisect)(t,e,1,o)-1;return u[r](a[r](e))}}function c(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function s(t,e){function n(){return s=Math.min(g.length,m.length)>2?u:a,l=h=null,c}function c(e){return(l||(l=s(g,m,_?i(t):t,y)))(+e)}var s,l,h,g=v,m=v,y=f.b,_=!1;return c.invert=function(t){return(h||(h=s(m,g,r,_?o(e):e)))(+t)},c.domain=function(t){return arguments.length?(g=p.a.call(t,d.a),n()):g.slice()},c.range=function(t){return arguments.length?(m=p.b.call(t),n()):m.slice()},c.rangeRound=function(t){return m=p.b.call(t),y=f.c,n()},c.clamp=function(t){return arguments.length?(_=!!t,n()):_},c.interpolate=function(t){return arguments.length?(y=t,n()):y},n()}e.b=r,e.c=c,e.a=s;var l=n(7),f=n(30),p=n(16),h=n(67),d=n(126),v=[0,1]},function(t,e,n){\"use strict\";function r(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===a.b&&e.documentElement.namespaceURI===a.b?e.createElement(t):e.createElementNS(n,t)}}function i(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var o=n(68),a=n(69);e.a=function(t){var e=n.i(o.a)(t);return(e.local?i:r)(e)}},function(t,e,n){\"use strict\";e.a=function(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}},function(t,e,n){\"use strict\";function r(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function i(t){this._context=t}e.c=r,e.b=i,i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:r(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:r(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new i(t)}},function(t,e,n){\"use strict\";function r(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function i(t,e){this._context=t,this._k=(1-e)/6}e.c=r,e.b=i,i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:r(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:r(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return new i(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){\"use strict\";function r(t){this._context=t}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";e.a=function(){}},function(t,e,n){\"use strict\";var r={};t.exports=r},function(t,e,n){\"use strict\";function r(t){return\"topMouseUp\"===t||\"topTouchEnd\"===t||\"topTouchCancel\"===t}function i(t){return\"topMouseMove\"===t||\"topTouchMove\"===t}function o(t){return\"topMouseDown\"===t||\"topTouchStart\"===t}function a(t,e,n,r){var i=t.type||\"unknown-event\";t.currentTarget=m.getNodeFromInstance(r),e?v.invokeGuardedCallbackWithCatch(i,n,t):v.invokeGuardedCallback(i,n,t),t.currentTarget=null}function u(t,e){var n=t._dispatchListeners,r=t._dispatchInstances;if(Array.isArray(n))for(var i=0;i<n.length&&!t.isPropagationStopped();i++)a(t,e,n[i],r[i]);else n&&a(t,e,n,r);t._dispatchListeners=null,t._dispatchInstances=null}function c(t){var e=t._dispatchListeners,n=t._dispatchInstances;if(Array.isArray(e)){for(var r=0;r<e.length&&!t.isPropagationStopped();r++)if(e[r](t,n[r]))return n[r]}else if(e&&e(t,n))return n;return null}function s(t){var e=c(t);return t._dispatchInstances=null,t._dispatchListeners=null,e}function l(t){var e=t._dispatchListeners,n=t._dispatchInstances;Array.isArray(e)&&d(\"103\"),t.currentTarget=e?m.getNodeFromInstance(n):null;var r=e?e(t):null;return t.currentTarget=null,t._dispatchListeners=null,t._dispatchInstances=null,r}function f(t){return!!t._dispatchListeners}var p,h,d=n(1),v=n(88),g=(n(0),n(2),{injectComponentTree:function(t){p=t},injectTreeTraversal:function(t){h=t}}),m={isEndish:r,isMoveish:i,isStartish:o,executeDirectDispatch:l,executeDispatchesInOrder:u,executeDispatchesInOrderStopAtTrue:s,hasDispatches:f,getInstanceFromNode:function(t){return p.getInstanceFromNode(t)},getNodeFromInstance:function(t){return p.getNodeFromInstance(t)},isAncestor:function(t,e){return h.isAncestor(t,e)},getLowestCommonAncestor:function(t,e){return h.getLowestCommonAncestor(t,e)},getParentInstance:function(t){return h.getParentInstance(t)},traverseTwoPhase:function(t,e,n){return h.traverseTwoPhase(t,e,n)},traverseEnterLeave:function(t,e,n,r,i){return h.traverseEnterLeave(t,e,n,r,i)},injection:g};t.exports=m},function(t,e,n){\"use strict\";function r(t){return Object.prototype.hasOwnProperty.call(t,v)||(t[v]=h++,f[t[v]]={}),f[t[v]]}var i,o=n(3),a=n(84),u=n(374),c=n(90),s=n(406),l=n(95),f={},p=!1,h=0,d={topAbort:\"abort\",topAnimationEnd:s(\"animationend\")||\"animationend\",topAnimationIteration:s(\"animationiteration\")||\"animationiteration\",topAnimationStart:s(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",topCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",topTouchStart:\"touchstart\",topTransitionEnd:s(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},v=\"_reactListenersID\"+String(Math.random()).slice(2),g=o({},u,{ReactEventListener:null,injection:{injectReactEventListener:function(t){t.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=t}},setEnabled:function(t){g.ReactEventListener&&g.ReactEventListener.setEnabled(t)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(t,e){for(var n=e,i=r(n),o=a.registrationNameDependencies[t],u=0;u<o.length;u++){var c=o[u];i.hasOwnProperty(c)&&i[c]||(\"topWheel\"===c?l(\"wheel\")?g.ReactEventListener.trapBubbledEvent(\"topWheel\",\"wheel\",n):l(\"mousewheel\")?g.ReactEventListener.trapBubbledEvent(\"topWheel\",\"mousewheel\",n):g.ReactEventListener.trapBubbledEvent(\"topWheel\",\"DOMMouseScroll\",n):\"topScroll\"===c?l(\"scroll\",!0)?g.ReactEventListener.trapCapturedEvent(\"topScroll\",\"scroll\",n):g.ReactEventListener.trapBubbledEvent(\"topScroll\",\"scroll\",g.ReactEventListener.WINDOW_HANDLE):\"topFocus\"===c||\"topBlur\"===c?(l(\"focus\",!0)?(g.ReactEventListener.trapCapturedEvent(\"topFocus\",\"focus\",n),g.ReactEventListener.trapCapturedEvent(\"topBlur\",\"blur\",n)):l(\"focusin\")&&(g.ReactEventListener.trapBubbledEvent(\"topFocus\",\"focusin\",n),g.ReactEventListener.trapBubbledEvent(\"topBlur\",\"focusout\",n)),i.topBlur=!0,i.topFocus=!0):d.hasOwnProperty(c)&&g.ReactEventListener.trapBubbledEvent(c,d[c],n),i[c]=!0)}},trapBubbledEvent:function(t,e,n){return g.ReactEventListener.trapBubbledEvent(t,e,n)},trapCapturedEvent:function(t,e,n){return g.ReactEventListener.trapCapturedEvent(t,e,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var t=document.createEvent(\"MouseEvent\");return null!=t&&\"pageX\"in t},ensureScrollValueMonitoring:function(){if(void 0===i&&(i=g.supportsEventPageXY()),!i&&!p){var t=c.refreshScrollValues;g.ReactEventListener.monitorScrollValue(t),p=!0}}});t.exports=g},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o=n(90),a=n(93),u={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function(t){var e=t.button;return\"which\"in t?e:2===e?2:4===e?1:0},buttons:null,relatedTarget:function(t){return t.relatedTarget||(t.fromElement===t.srcElement?t.toElement:t.fromElement)},pageX:function(t){return\"pageX\"in t?t.pageX:t.clientX+o.currentScrollLeft},pageY:function(t){return\"pageY\"in t?t.pageY:t.clientY+o.currentScrollTop}};i.augmentClass(r,u),t.exports=r},function(t,e,n){\"use strict\";var r=n(1),i=(n(0),{}),o={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(t,e,n,i,o,a,u,c){this.isInTransaction()&&r(\"27\");var s,l;try{this._isInTransaction=!0,s=!0,this.initializeAll(0),l=t.call(e,n,i,o,a,u,c),s=!1}finally{try{if(s)try{this.closeAll(0)}catch(t){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(t){for(var e=this.transactionWrappers,n=t;n<e.length;n++){var r=e[n];try{this.wrapperInitData[n]=i,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===i)try{this.initializeAll(n+1)}catch(t){}}}},closeAll:function(t){this.isInTransaction()||r(\"28\");for(var e=this.transactionWrappers,n=t;n<e.length;n++){var o,a=e[n],u=this.wrapperInitData[n];try{o=!0,u!==i&&a.close&&a.close.call(this,u),o=!1}finally{if(o)try{this.closeAll(n+1)}catch(t){}}}this.wrapperInitData.length=0}};t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=\"\"+t,n=o.exec(e);if(!n)return e;var r,i=\"\",a=0,u=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:r=\"&quot;\";break;case 38:r=\"&amp;\";break;case 39:r=\"&#x27;\";break;case 60:r=\"&lt;\";break;case 62:r=\"&gt;\";break;default:continue}u!==a&&(i+=e.substring(u,a)),u=a+1,i+=r}return u!==a?i+e.substring(u,a):i}function i(t){return\"boolean\"==typeof t||\"number\"==typeof t?\"\"+t:r(t)}var o=/[\"'&<>]/;t.exports=i},function(t,e,n){\"use strict\";var r,i=n(6),o=n(83),a=/^[ \\r\\n\\t\\f]/,u=/<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/,c=n(91),s=c(function(t,e){if(t.namespaceURI!==o.svg||\"innerHTML\"in t)t.innerHTML=e;else{r=r||document.createElement(\"div\"),r.innerHTML=\"<svg>\"+e+\"</svg>\";for(var n=r.firstChild;n.firstChild;)t.appendChild(n.firstChild)}});if(i.canUseDOM){var l=document.createElement(\"div\");l.innerHTML=\" \",\"\"===l.innerHTML&&(s=function(t,e){if(t.parentNode&&t.parentNode.replaceChild(t,t),a.test(e)||\"<\"===e[0]&&u.test(e)){t.innerHTML=String.fromCharCode(65279)+e;var n=t.firstChild;1===n.data.length?t.removeChild(n):n.deleteData(0,1)}else t.innerHTML=e}),l=null}t.exports=s},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={colors:{RdBu:[\"rgb(255, 13, 87)\",\"rgb(30, 136, 229)\"],GnPR:[\"rgb(24, 196, 93)\",\"rgb(124, 82, 255)\"],CyPU:[\"#0099C6\",\"#990099\"],PkYg:[\"#DD4477\",\"#66AA00\"],DrDb:[\"#B82E2E\",\"#316395\"],LpLb:[\"#994499\",\"#22AA99\"],YlDp:[\"#AAAA11\",\"#6633CC\"],OrId:[\"#E67300\",\"#3E0099\"]},gray:\"#777\"}},function(t,e,n){\"use strict\";var r=n(28);e.a=function(t,e,n){if(null==n&&(n=r.a),i=t.length){if((e=+e)<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,o=(i-1)*e,a=Math.floor(o),u=+n(t[a],a,t);return u+(+n(t[a+1],a+1,t)-u)*(o-a)}}},function(t,e,n){\"use strict\";function r(){}function i(t,e){var n=new r;if(t instanceof r)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var i,o=-1,a=t.length;if(null==e)for(;++o<a;)n.set(o,t[o]);else for(;++o<a;)n.set(e(i=t[o],o,t),i)}else if(t)for(var u in t)n.set(u,t[u]);return n}n.d(e,\"b\",function(){return o});var o=\"$\";r.prototype=i.prototype={constructor:r,has:function(t){return o+t in this},get:function(t){return this[o+t]},set:function(t,e){return this[o+t]=e,this},remove:function(t){var e=o+t;return e in this&&delete this[e]},clear:function(){for(var t in this)t[0]===o&&delete this[t]},keys:function(){var t=[];for(var e in this)e[0]===o&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)e[0]===o&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)e[0]===o&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)e[0]===o&&++t;return t},empty:function(){for(var t in this)if(t[0]===o)return!1;return!0},each:function(t){for(var e in this)e[0]===o&&t(this[e],e.slice(1),this)}},e.a=i},function(t,e,n){\"use strict\";function r(){}function i(t){var e;return t=(t+\"\").trim().toLowerCase(),(e=x.exec(t))?(e=parseInt(e[1],16),new s(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1)):(e=w.exec(t))?o(parseInt(e[1],16)):(e=C.exec(t))?new s(e[1],e[2],e[3],1):(e=k.exec(t))?new s(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=E.exec(t))?a(e[1],e[2],e[3],e[4]):(e=M.exec(t))?a(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=T.exec(t))?l(e[1],e[2]/100,e[3]/100,1):(e=S.exec(t))?l(e[1],e[2]/100,e[3]/100,e[4]):N.hasOwnProperty(t)?o(N[t]):\"transparent\"===t?new s(NaN,NaN,NaN,0):null}function o(t){return new s(t>>16&255,t>>8&255,255&t,1)}function a(t,e,n,r){return r<=0&&(t=e=n=NaN),new s(t,e,n,r)}function u(t){return t instanceof r||(t=i(t)),t?(t=t.rgb(),new s(t.r,t.g,t.b,t.opacity)):new s}function c(t,e,n,r){return 1===arguments.length?u(t):new s(t,e,n,null==r?1:r)}function s(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function l(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new h(t,e,n,r)}function f(t){if(t instanceof h)return new h(t.h,t.s,t.l,t.opacity);if(t instanceof r||(t=i(t)),!t)return new h;if(t instanceof h)return t;t=t.rgb();var e=t.r/255,n=t.g/255,o=t.b/255,a=Math.min(e,n,o),u=Math.max(e,n,o),c=NaN,s=u-a,l=(u+a)/2;return s?(c=e===u?(n-o)/s+6*(n<o):n===u?(o-e)/s+2:(e-n)/s+4,s/=l<.5?u+a:2-u-a,c*=60):s=l>0&&l<1?0:c,new h(c,s,l,t.opacity)}function p(t,e,n,r){return 1===arguments.length?f(t):new h(t,e,n,null==r?1:r)}function h(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function d(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}e.f=r,n.d(e,\"h\",function(){return g}),n.d(e,\"g\",function(){return m}),e.a=i,e.e=u,e.b=c,e.d=s,e.c=p;var v=n(62),g=.7,m=1/g,y=\"\\\\s*([+-]?\\\\d+)\\\\s*\",_=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",b=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",x=/^#([0-9a-f]{3})$/,w=/^#([0-9a-f]{6})$/,C=new RegExp(\"^rgb\\\\(\"+[y,y,y]+\"\\\\)$\"),k=new RegExp(\"^rgb\\\\(\"+[b,b,b]+\"\\\\)$\"),E=new RegExp(\"^rgba\\\\(\"+[y,y,y,_]+\"\\\\)$\"),M=new RegExp(\"^rgba\\\\(\"+[b,b,b,_]+\"\\\\)$\"),T=new RegExp(\"^hsl\\\\(\"+[_,b,b]+\"\\\\)$\"),S=new RegExp(\"^hsla\\\\(\"+[_,b,b,_]+\"\\\\)$\"),N={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n.i(v.a)(r,i,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+\"\"}}),n.i(v.a)(s,c,n.i(v.b)(r,{brighter:function(t){return t=null==t?m:Math.pow(m,t),new s(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?g:Math.pow(g,t),new s(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?\")\":\", \"+t+\")\")}})),n.i(v.a)(h,p,n.i(v.b)(r,{brighter:function(t){return t=null==t?m:Math.pow(m,t),new h(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?g:Math.pow(g,t),new h(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new s(d(t>=240?t-240:t+120,i,r),d(t,i,r),d(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}))},function(t,e,n){\"use strict\";function r(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}e.b=r,e.a=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t}},function(t,e,n){\"use strict\";e.a=function(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf(\"e\"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}},function(t,e,n){\"use strict\";function r(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}e.b=r,e.a=function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),o=t[i],a=t[i+1],u=i>0?t[i-1]:2*o-a,c=i<e-1?t[i+2]:2*a-o;return r((n-i/e)*e,u,o,a,c)}}},function(t,e,n){\"use strict\";var r=n(10),i=n(123),o=n(118),a=n(121),u=n(43),c=n(122),s=n(124),l=n(120);e.a=function(t,e){var f,p=typeof e;return null==e||\"boolean\"===p?n.i(l.a)(e):(\"number\"===p?u.a:\"string\"===p?(f=n.i(r.color)(e))?(e=f,i.a):s.a:e instanceof r.color?i.a:e instanceof Date?a.a:Array.isArray(e)?o.a:\"function\"!=typeof e.valueOf&&\"function\"!=typeof e.toString||isNaN(e)?c.a:u.a)(t,e)}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(239);n.d(e,\"scaleBand\",function(){return r.a}),n.d(e,\"scalePoint\",function(){return r.b});var i=n(245);n.d(e,\"scaleIdentity\",function(){return i.a});var o=n(34);n.d(e,\"scaleLinear\",function(){return o.a});var a=n(246);n.d(e,\"scaleLog\",function(){return a.a});var u=n(127);n.d(e,\"scaleOrdinal\",function(){return u.a}),n.d(e,\"scaleImplicit\",function(){return u.b});var c=n(247);n.d(e,\"scalePow\",function(){return c.a}),n.d(e,\"scaleSqrt\",function(){return c.b});var s=n(248);n.d(e,\"scaleQuantile\",function(){return s.a});var l=n(249);n.d(e,\"scaleQuantize\",function(){return l.a});var f=n(252);n.d(e,\"scaleThreshold\",function(){return f.a});var p=n(128);n.d(e,\"scaleTime\",function(){return p.a});var h=n(254);n.d(e,\"scaleUtc\",function(){return h.a});var d=n(240);n.d(e,\"schemeCategory10\",function(){return d.a});var v=n(242);n.d(e,\"schemeCategory20b\",function(){return v.a});var g=n(243);n.d(e,\"schemeCategory20c\",function(){return g.a});var m=n(241);n.d(e,\"schemeCategory20\",function(){return m.a});var y=n(244);n.d(e,\"interpolateCubehelixDefault\",function(){return y.a});var _=n(250);n.d(e,\"interpolateRainbow\",function(){return _.a}),n.d(e,\"interpolateWarm\",function(){return _.b}),n.d(e,\"interpolateCool\",function(){return _.c});var b=n(255);n.d(e,\"interpolateViridis\",function(){return b.a}),n.d(e,\"interpolateMagma\",function(){return b.b}),n.d(e,\"interpolateInferno\",function(){return b.c}),n.d(e,\"interpolatePlasma\",function(){return b.d});var x=n(251);n.d(e,\"scaleSequential\",function(){return x.a})},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(69);e.a=function(t){var e=t+=\"\",n=e.indexOf(\":\");return n>=0&&\"xmlns\"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.a.hasOwnProperty(e)?{space:r.a[e],local:t}:t}},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return r});var r=\"http://www.w3.org/1999/xhtml\";e.a={svg:\"http://www.w3.org/2000/svg\",xhtml:r,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"}},function(t,e,n){\"use strict\";function r(t,e,n){return t=i(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function i(t,e,n){return function(r){var i=l;l=r;try{t.call(this,this.__data__,e,n)}finally{l=i}}}function o(t){return t.trim().split(/^|\\s+/).map(function(t){var e=\"\",n=t.indexOf(\".\");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}})}function a(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.capture);++i?e.length=i:delete this.__on}}}function u(t,e,n){var o=s.hasOwnProperty(t.type)?r:i;return function(r,i,a){var u,c=this.__on,s=o(e,i,a);if(c)for(var l=0,f=c.length;l<f;++l)if((u=c[l]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=s,u.capture=n),void(u.value=e);this.addEventListener(t.type,s,n),u={type:t.type,name:t.name,value:e,listener:s,capture:n},c?c.push(u):this.__on=[u]}}function c(t,e,n,r){var i=l;t.sourceEvent=l,l=t;try{return e.apply(n,r)}finally{l=i}}n.d(e,\"a\",function(){return l}),e.b=c;var s={},l=null;if(\"undefined\"!=typeof document){\"onmouseenter\"in document.documentElement||(s={mouseenter:\"mouseover\",mouseleave:\"mouseout\"})}e.c=function(t,e,n){var r,i,c=o(t+\"\"),s=c.length;{if(!(arguments.length<2)){for(l=e?u:a,null==n&&(n=!1),r=0;r<s;++r)this.each(l(c[r],e,n));return this}var l=this.node().__on;if(l)for(var f,p=0,h=l.length;p<h;++p)for(r=0,f=l[p];r<s;++r)if((i=c[r]).type===f.type&&i.name===f.name)return f.value}}},function(t,e,n){\"use strict\";function r(){}e.a=function(t){return null==t?r:function(){return this.querySelector(t)}}},function(t,e,n){\"use strict\";var r=n(70);e.a=function(){for(var t,e=r.a;t=e.sourceEvent;)e=t;return e}},function(t,e,n){\"use strict\";e.a=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}},function(t,e,n){\"use strict\";function r(t,e,n){var r=t._x1,i=t._y1,a=t._x2,u=t._y2;if(t._l01_a>o.a){var c=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,s=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*c-t._x0*t._l12_2a+t._x2*t._l01_2a)/s,i=(i*c-t._y0*t._l12_2a+t._y2*t._l01_2a)/s}if(t._l23_a>o.a){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*l+t._x1*t._l23_2a-e*t._l12_2a)/f,u=(u*l+t._y1*t._l23_2a-n*t._l12_2a)/f}t._context.bezierCurveTo(r,i,a,u,t._x2,t._y2)}function i(t,e){this._context=t,this._alpha=e}e.b=r;var o=n(35),a=n(48);i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:r(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return e?new i(t,e):new a.b(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){\"use strict\";var r=n(32),i=n(17),o=n(49),a=n(77);e.a=function(){function t(t){var i,o,a,p=t.length,h=!1;for(null==s&&(f=l(a=n.i(r.a)())),i=0;i<=p;++i)!(i<p&&c(o=t[i],i,t))===h&&((h=!h)?f.lineStart():f.lineEnd()),h&&f.point(+e(o,i,t),+u(o,i,t));if(a)return f=null,a+\"\"||null}var e=a.a,u=a.b,c=n.i(i.a)(!0),s=null,l=o.a,f=null;return t.x=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(i.a)(+r),t):e},t.y=function(e){return arguments.length?(u=\"function\"==typeof e?e:n.i(i.a)(+e),t):u},t.defined=function(e){return arguments.length?(c=\"function\"==typeof e?e:n.i(i.a)(!!e),t):c},t.curve=function(e){return arguments.length?(l=e,null!=s&&(f=l(s)),t):l},t.context=function(e){return arguments.length?(null==e?s=f=null:f=l(s=e),t):s},t}},function(t,e,n){\"use strict\";function r(t){for(var e,n=0,r=-1,i=t.length;++r<i;)(e=+t[r][1])&&(n+=e);return n}e.b=r;var i=n(37);e.a=function(t){var e=t.map(r);return n.i(i.a)(t).sort(function(t,n){return e[t]-e[n]})}},function(t,e,n){\"use strict\";function r(t){return t[0]}function i(t){return t[1]}e.a=r,e.b=i},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(79);n.d(e,\"timeFormatDefaultLocale\",function(){return r.a}),n.d(e,\"timeFormat\",function(){return r.b}),n.d(e,\"timeParse\",function(){return r.c}),n.d(e,\"utcFormat\",function(){return r.d}),n.d(e,\"utcParse\",function(){return r.e});var i=n(152);n.d(e,\"timeFormatLocale\",function(){return i.a});var o=n(151);n.d(e,\"isoFormat\",function(){return o.a});var a=n(314);n.d(e,\"isoParse\",function(){return a.a})},function(t,e,n){\"use strict\";function r(t){return i=n.i(s.a)(t),o=i.format,a=i.parse,u=i.utcFormat,c=i.utcParse,i}n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a}),n.d(e,\"d\",function(){return u}),n.d(e,\"e\",function(){return c}),e.a=r;var i,o,a,u,c,s=n(152);r({dateTime:\"%x, %X\",date:\"%-m/%-d/%Y\",time:\"%-I:%M:%S %p\",periods:[\"AM\",\"PM\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]})},function(t,e,n){\"use strict\";var r=(n(5),n(317));n.d(e,\"v\",function(){return r.a}),n.d(e,\"p\",function(){return r.a});var i=n(320);n.d(e,\"u\",function(){return i.a}),n.d(e,\"o\",function(){return i.a});var o=n(318);n.d(e,\"t\",function(){return o.a});var a=n(316);n.d(e,\"s\",function(){return a.a});var u=n(315);n.d(e,\"d\",function(){return u.a});var c=n(327);n.d(e,\"r\",function(){return c.a}),n.d(e,\"f\",function(){return c.a}),n.d(e,\"c\",function(){return c.b}),n.d(e,\"g\",function(){return c.c});var s=n(319);n.d(e,\"q\",function(){return s.a});var l=n(328);n.d(e,\"e\",function(){return l.a});var f=n(323);n.d(e,\"n\",function(){return f.a});var p=n(322);n.d(e,\"m\",function(){return p.a});var h=n(321);n.d(e,\"b\",function(){return h.a});var d=n(325);n.d(e,\"l\",function(){return d.a}),n.d(e,\"i\",function(){return d.a}),n.d(e,\"a\",function(){return d.b}),n.d(e,\"j\",function(){return d.c});var v=n(324);n.d(e,\"k\",function(){return v.a});var g=n(326);n.d(e,\"h\",function(){return g.a})},function(t,e,n){\"use strict\";function r(t,e){return t===e?0!==t||0!==e||1/t==1/e:t!==t&&e!==e}function i(t,e){if(r(t,e))return!0;if(\"object\"!=typeof t||null===t||\"object\"!=typeof e||null===e)return!1;var n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(var a=0;a<n.length;a++)if(!o.call(e,n[a])||!r(t[n[a]],e[n[a]]))return!1;return!0}var o=Object.prototype.hasOwnProperty;t.exports=i},function(t,e,n){\"use strict\";function r(t,e){return Array.isArray(e)&&(e=e[1]),e?e.nextSibling:t.firstChild}function i(t,e,n){l.insertTreeBefore(t,e,n)}function o(t,e,n){Array.isArray(e)?u(t,e[0],e[1],n):v(t,e,n)}function a(t,e){if(Array.isArray(e)){var n=e[1];e=e[0],c(t,e,n),t.removeChild(n)}t.removeChild(e)}function u(t,e,n,r){for(var i=e;;){var o=i.nextSibling;if(v(t,i,r),i===n)break;i=o}}function c(t,e,n){for(;;){var r=e.nextSibling;if(r===n)break;t.removeChild(r)}}function s(t,e,n){var r=t.parentNode,i=t.nextSibling;i===e?n&&v(r,document.createTextNode(n),i):n?(d(i,n),c(r,i,e)):c(r,t,e)}var l=n(20),f=n(350),p=(n(4),n(9),n(91)),h=n(57),d=n(176),v=p(function(t,e,n){t.insertBefore(e,n)}),g=f.dangerouslyReplaceNodeWithMarkup,m={dangerouslyReplaceNodeWithMarkup:g,replaceDelimitedText:s,processUpdates:function(t,e){for(var n=0;n<e.length;n++){var u=e[n];switch(u.type){case\"INSERT_MARKUP\":i(t,u.content,r(t,u.afterNode));break;case\"MOVE_EXISTING\":o(t,u.fromNode,r(t,u.afterNode));break;case\"SET_MARKUP\":h(t,u.content);break;case\"TEXT_CONTENT\":d(t,u.content);break;case\"REMOVE_NODE\":a(t,u.fromNode)}}}};t.exports=m},function(t,e,n){\"use strict\";var r={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};t.exports=r},function(t,e,n){\"use strict\";function r(){if(u)for(var t in c){var e=c[t],n=u.indexOf(t);if(n>-1||a(\"96\",t),!s.plugins[n]){e.extractEvents||a(\"97\",t),s.plugins[n]=e;var r=e.eventTypes;for(var o in r)i(r[o],e,o)||a(\"98\",o,t)}}}function i(t,e,n){s.eventNameDispatchConfigs.hasOwnProperty(n)&&a(\"99\",n),s.eventNameDispatchConfigs[n]=t;var r=t.phasedRegistrationNames;if(r){for(var i in r)if(r.hasOwnProperty(i)){var u=r[i];o(u,e,n)}return!0}return!!t.registrationName&&(o(t.registrationName,e,n),!0)}function o(t,e,n){s.registrationNameModules[t]&&a(\"100\",t),s.registrationNameModules[t]=e,s.registrationNameDependencies[t]=e.eventTypes[n].dependencies}var a=n(1),u=(n(0),null),c={},s={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(t){u&&a(\"101\"),u=Array.prototype.slice.call(t),r()},injectEventPluginsByName:function(t){var e=!1;for(var n in t)if(t.hasOwnProperty(n)){var i=t[n];c.hasOwnProperty(n)&&c[n]===i||(c[n]&&a(\"102\",n),c[n]=i,e=!0)}e&&r()},getPluginModuleForEvent:function(t){var e=t.dispatchConfig;if(e.registrationName)return s.registrationNameModules[e.registrationName]||null;if(void 0!==e.phasedRegistrationNames){var n=e.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var i=s.registrationNameModules[n[r]];if(i)return i}}return null},_resetEventPlugins:function(){u=null;for(var t in c)c.hasOwnProperty(t)&&delete c[t];s.plugins.length=0;var e=s.eventNameDispatchConfigs;for(var n in e)e.hasOwnProperty(n)&&delete e[n];var r=s.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};t.exports=s},function(t,e,n){\"use strict\";function r(t){var e={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+t).replace(/[=:]/g,function(t){return e[t]})}function i(t){var e=/(=0|=2)/g,n={\"=0\":\"=\",\"=2\":\":\"};return(\"\"+(\".\"===t[0]&&\"$\"===t[1]?t.substring(2):t.substring(1))).replace(e,function(t){return n[t]})}var o={escape:r,unescape:i};t.exports=o},function(t,e,n){\"use strict\";function r(t){null!=t.checkedLink&&null!=t.valueLink&&u(\"87\")}function i(t){r(t),(null!=t.value||null!=t.onChange)&&u(\"88\")}function o(t){r(t),(null!=t.checked||null!=t.onChange)&&u(\"89\")}function a(t){if(t){var e=t.getName();if(e)return\" Check the render method of `\"+e+\"`.\"}return\"\"}var u=n(1),c=n(380),s=n(157),l=n(26),f=s(l.isValidElement),p=(n(0),n(2),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),h={value:function(t,e,n){return!t[e]||p[t.type]||t.onChange||t.readOnly||t.disabled?null:new Error(\"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\")},checked:function(t,e,n){return!t[e]||t.onChange||t.readOnly||t.disabled?null:new Error(\"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\")},onChange:f.func},d={},v={checkPropTypes:function(t,e,n){for(var r in h){if(h.hasOwnProperty(r))var i=h[r](e,r,t,\"prop\",null,c);if(i instanceof Error&&!(i.message in d)){d[i.message]=!0;a(n)}}},getValue:function(t){return t.valueLink?(i(t),t.valueLink.value):t.value},getChecked:function(t){return t.checkedLink?(o(t),t.checkedLink.value):t.checked},executeOnChange:function(t,e){return t.valueLink?(i(t),t.valueLink.requestChange(e.target.value)):t.checkedLink?(o(t),t.checkedLink.requestChange(e.target.checked)):t.onChange?t.onChange.call(void 0,e):void 0}};t.exports=v},function(t,e,n){\"use strict\";var r=n(1),i=(n(0),!1),o={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(t){i&&r(\"104\"),o.replaceNodeWithMarkup=t.replaceNodeWithMarkup,o.processChildrenUpdates=t.processChildrenUpdates,i=!0}}};t.exports=o},function(t,e,n){\"use strict\";function r(t,e,n){try{e(n)}catch(t){null===i&&(i=t)}}var i=null,o={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(i){var t=i;throw i=null,t}}};t.exports=o},function(t,e,n){\"use strict\";function r(t){c.enqueueUpdate(t)}function i(t){var e=typeof t;if(\"object\"!==e)return e;var n=t.constructor&&t.constructor.name||e,r=Object.keys(t);return r.length>0&&r.length<20?n+\" (keys: \"+r.join(\", \")+\")\":n}function o(t,e){var n=u.get(t);if(!n){return null}return n}var a=n(1),u=(n(15),n(39)),c=(n(9),n(12)),s=(n(0),n(2),{isMounted:function(t){var e=u.get(t);return!!e&&!!e._renderedComponent},enqueueCallback:function(t,e,n){s.validateCallback(e,n);var i=o(t);if(!i)return null;i._pendingCallbacks?i._pendingCallbacks.push(e):i._pendingCallbacks=[e],r(i)},enqueueCallbackInternal:function(t,e){t._pendingCallbacks?t._pendingCallbacks.push(e):t._pendingCallbacks=[e],r(t)},enqueueForceUpdate:function(t){var e=o(t,\"forceUpdate\");e&&(e._pendingForceUpdate=!0,r(e))},enqueueReplaceState:function(t,e,n){var i=o(t,\"replaceState\");i&&(i._pendingStateQueue=[e],i._pendingReplaceState=!0,void 0!==n&&null!==n&&(s.validateCallback(n,\"replaceState\"),i._pendingCallbacks?i._pendingCallbacks.push(n):i._pendingCallbacks=[n]),r(i))},enqueueSetState:function(t,e){var n=o(t,\"setState\");if(n){(n._pendingStateQueue||(n._pendingStateQueue=[])).push(e),r(n)}},enqueueElementInternal:function(t,e,n){t._pendingElement=e,t._context=n,r(t)},validateCallback:function(t,e){t&&\"function\"!=typeof t&&a(\"122\",e,i(t))}});t.exports=s},function(t,e,n){\"use strict\";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(t){r.currentScrollLeft=t.x,r.currentScrollTop=t.y}};t.exports=r},function(t,e,n){\"use strict\";var r=function(t){return\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,r,i){MSApp.execUnsafeLocalFunction(function(){return t(e,n,r,i)})}:t};t.exports=r},function(t,e,n){\"use strict\";function r(t){var e,n=t.keyCode;return\"charCode\"in t?0===(e=t.charCode)&&13===n&&(e=13):e=n,e>=32||13===e?e:0}t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=this,n=e.nativeEvent;if(n.getModifierState)return n.getModifierState(t);var r=o[t];return!!r&&!!n[r]}function i(t){return r}var o={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};t.exports=i},function(t,e,n){\"use strict\";function r(t){var e=t.target||t.srcElement||window;return e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}t.exports=r},function(t,e,n){\"use strict\";/**\n",
       " * Checks if an event is supported in the current execution environment.\n",
       " *\n",
       " * NOTE: This will not work correctly for non-generic events such as `change`,\n",
       " * `reset`, `load`, `error`, and `select`.\n",
       " *\n",
       " * Borrows from Modernizr.\n",
       " *\n",
       " * @param {string} eventNameSuffix Event name, e.g. \"click\".\n",
       " * @param {?boolean} capture Check if the capture phase is supported.\n",
       " * @return {boolean} True if the event is supported.\n",
       " * @internal\n",
       " * @license Modernizr 3.0.0pre (Custom Build) | MIT\n",
       " */\n",
       "function r(t,e){if(!o.canUseDOM||e&&!(\"addEventListener\"in document))return!1;var n=\"on\"+t,r=n in document;if(!r){var a=document.createElement(\"div\");a.setAttribute(n,\"return;\"),r=\"function\"==typeof a[n]}return!r&&i&&\"wheel\"===t&&(r=document.implementation.hasFeature(\"Events.wheel\",\"3.0\")),r}var i,o=n(6);o.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\")),t.exports=r},function(t,e,n){\"use strict\";function r(t,e){var n=null===t||!1===t,r=null===e||!1===e;if(n||r)return n===r;var i=typeof t,o=typeof e;return\"string\"===i||\"number\"===i?\"string\"===o||\"number\"===o:\"object\"===o&&t.type===e.type&&t.key===e.key}t.exports=r},function(t,e,n){\"use strict\";var r=(n(3),n(11)),i=(n(2),r);t.exports=i},function(t,e){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,\"loaded\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\"id\",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return i}),n.d(e,\"a\",function(){return o});var r=Array.prototype,i=r.slice,o=r.map},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return a}),n.d(e,\"c\",function(){return u});var r=n(19),i=n(102),o=n.i(i.a)(r.a),a=o.right,u=o.left;e.a=a},function(t,e,n){\"use strict\";function r(t){return function(e,r){return n.i(i.a)(t(e),r)}}var i=n(19);e.a=function(t){return 1===t.length&&(t=r(t)),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var o=r+i>>>1;t(e[o],n)<0?r=o+1:i=o}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var o=r+i>>>1;t(e[o],n)>0?i=o:r=o+1}return r}}}},function(t,e,n){\"use strict\";var r=n(111);e.a=function(t,e){var i=n.i(r.a)(t,e);return i?Math.sqrt(i):i}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r,i,o=t.length,a=-1;if(null==e){for(;++a<o;)if(null!=(n=t[a])&&n>=n)for(r=i=n;++a<o;)null!=(n=t[a])&&(r>n&&(r=n),i<n&&(i=n))}else for(;++a<o;)if(null!=(n=e(t[a],a,t))&&n>=n)for(r=i=n;++a<o;)null!=(n=e(t[a],a,t))&&(r>n&&(r=n),i<n&&(i=n));return[r,i]}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r,i=t.length,o=-1;if(null==e){for(;++o<i;)if(null!=(n=t[o])&&n>=n)for(r=n;++o<i;)null!=(n=t[o])&&r>n&&(r=n)}else for(;++o<i;)if(null!=(n=e(t[o],o,t))&&n>=n)for(r=n;++o<i;)null!=(n=e(t[o],o,t))&&r>n&&(r=n);return r}},function(t,e,n){\"use strict\";function r(t,e){return[t,e]}e.b=r,e.a=function(t,e){null==e&&(e=r);for(var n=0,i=t.length-1,o=t[0],a=new Array(i<0?0:i);n<i;)a[n]=e(o,o=t[++n]);return a}},function(t,e,n){\"use strict\";e.a=function(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(i);++r<i;)o[r]=t+r*n;return o}},function(t,e,n){\"use strict\";e.a=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}},function(t,e,n){\"use strict\";function r(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),c=r/Math.pow(10,i);return i>=0?(c>=o?10:c>=a?5:c>=u?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(c>=o?10:c>=a?5:c>=u?2:1)}function i(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),c=r/i;return c>=o?i*=10:c>=a?i*=5:c>=u&&(i*=2),e<t?-i:i}e.b=r,e.c=i;var o=Math.sqrt(50),a=Math.sqrt(10),u=Math.sqrt(2);e.a=function(t,e,n){var i,o,a,u,c=-1;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((i=e<t)&&(o=t,t=e,e=o),0===(u=r(t,e,n))||!isFinite(u))return[];if(u>0)for(t=Math.ceil(t/u),e=Math.floor(e/u),a=new Array(o=Math.ceil(e-t+1));++c<o;)a[c]=(t+c)*u;else for(t=Math.floor(t*u),e=Math.ceil(e*u),a=new Array(o=Math.ceil(t-e+1));++c<o;)a[c]=(t-c)/u;return i&&a.reverse(),a}},function(t,e,n){\"use strict\";function r(t){return t.length}var i=n(105);e.a=function(t){if(!(u=t.length))return[];for(var e=-1,o=n.i(i.a)(t,r),a=new Array(o);++e<o;)for(var u,c=-1,s=a[e]=new Array(u);++c<u;)s[c]=t[c][e];return a}},function(t,e,n){\"use strict\";var r=n(28);e.a=function(t,e){var i,o,a=t.length,u=0,c=-1,s=0,l=0;if(null==e)for(;++c<a;)isNaN(i=n.i(r.a)(t[c]))||(o=i-s,s+=o/++u,l+=o*(i-s));else for(;++c<a;)isNaN(i=n.i(r.a)(e(t[c],c,t)))||(o=i-s,s+=o/++u,l+=o*(i-s));if(u>1)return l/(u-1)}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(209);n.d(e,\"axisTop\",function(){return r.a}),n.d(e,\"axisRight\",function(){return r.b}),n.d(e,\"axisBottom\",function(){return r.c}),n.d(e,\"axisLeft\",function(){return r.d})},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return r}),n.d(e,\"a\",function(){return i});var r=Math.PI/180,i=180/Math.PI},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return r});var r,i=n(63);e.a=function(t,e){var o=n.i(i.a)(t,e);if(!o)return t+\"\";var a=o[0],u=o[1],c=u-(r=3*Math.max(-8,Math.min(8,Math.floor(u/3))))+1,s=a.length;return c===s?a:c>s?a+new Array(c-s+1).join(\"0\"):c>0?a.slice(0,c)+\".\"+a.slice(c):\"0.\"+new Array(1-c).join(\"0\")+n.i(i.a)(t,Math.max(0,e+c-1))[0]}},function(t,e,n){\"use strict\";function r(t){return new i(t)}function i(t){if(!(e=a.exec(t)))throw new Error(\"invalid format: \"+t);var e,n=e[1]||\" \",r=e[2]||\">\",i=e[3]||\"-\",u=e[4]||\"\",c=!!e[5],s=e[6]&&+e[6],l=!!e[7],f=e[8]&&+e[8].slice(1),p=e[9]||\"\";\"n\"===p?(l=!0,p=\"g\"):o.a[p]||(p=\"\"),(c||\"0\"===n&&\"=\"===r)&&(c=!0,n=\"0\",r=\"=\"),this.fill=n,this.align=r,this.sign=i,this.symbol=u,this.zero=c,this.width=s,this.comma=l,this.precision=f,this.type=p}e.a=r;var o=n(116),a=/^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;r.prototype=i.prototype,i.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(null==this.width?\"\":Math.max(1,0|this.width))+(this.comma?\",\":\"\")+(null==this.precision?\"\":\".\"+Math.max(0,0|this.precision))+this.type}},function(t,e,n){\"use strict\";var r=n(220),i=n(114),o=n(223);e.a={\"\":r.a,\"%\":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+\"\"},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return n.i(o.a)(100*t,e)},r:o.a,s:i.a,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}}},function(t,e,n){\"use strict\";var r=n(42),i=n(221),o=n(222),a=n(115),u=n(116),c=n(114),s=n(224),l=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];e.a=function(t){function e(t){function e(t){var e,n,a,u=x,s=w;if(\"c\"===b)s=C(t)+s,t=\"\";else{t=+t;var h=t<0;if(t=C(Math.abs(t),_),h&&0==+t&&(h=!1),u=(h?\"(\"===o?o:\"-\":\"-\"===o||\"(\"===o?\"\":o)+u,s=(\"s\"===b?l[8+c.b/3]:\"\")+s+(h&&\"(\"===o?\")\":\"\"),k)for(e=-1,n=t.length;++e<n;)if(48>(a=t.charCodeAt(e))||a>57){s=(46===a?d+t.slice(e+1):t.slice(e))+s,t=t.slice(0,e);break}}y&&!f&&(t=p(t,1/0));var g=u.length+t.length+s.length,E=g<m?new Array(m-g+1).join(r):\"\";switch(y&&f&&(t=p(E+t,E.length?m-s.length:1/0),E=\"\"),i){case\"<\":t=u+t+s+E;break;case\"=\":t=u+E+t+s;break;case\"^\":t=E.slice(0,g=E.length>>1)+u+t+s+E.slice(g);break;default:t=E+u+t+s}return v(t)}t=n.i(a.a)(t);var r=t.fill,i=t.align,o=t.sign,s=t.symbol,f=t.zero,m=t.width,y=t.comma,_=t.precision,b=t.type,x=\"$\"===s?h[0]:\"#\"===s&&/[boxX]/.test(b)?\"0\"+b.toLowerCase():\"\",w=\"$\"===s?h[1]:/[%p]/.test(b)?g:\"\",C=u.a[b],k=!b||/[defgprs%]/.test(b);return _=null==_?b?6:12:/[gprs]/.test(b)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_)),e.toString=function(){return t+\"\"},e}function f(t,i){var o=e((t=n.i(a.a)(t),t.type=\"f\",t)),u=3*Math.max(-8,Math.min(8,Math.floor(n.i(r.a)(i)/3))),c=Math.pow(10,-u),s=l[8+u/3];return function(t){return o(c*t)+s}}var p=t.grouping&&t.thousands?n.i(i.a)(t.grouping,t.thousands):s.a,h=t.currency,d=t.decimal,v=t.numerals?n.i(o.a)(t.numerals):s.a,g=t.percent||\"%\";return{format:e,formatPrefix:f}}},function(t,e,n){\"use strict\";var r=n(65);e.a=function(t,e){var i,o=e?e.length:0,a=t?Math.min(o,t.length):0,u=new Array(a),c=new Array(o);for(i=0;i<a;++i)u[i]=n.i(r.a)(t[i],e[i]);for(;i<o;++i)c[i]=e[i];return function(t){for(i=0;i<a;++i)c[i]=u[i](t);return c}}},function(t,e,n){\"use strict\";var r=n(64);e.a=function(t){var e=t.length;return function(i){var o=Math.floor(((i%=1)<0?++i:i)*e),a=t[(o+e-1)%e],u=t[o%e],c=t[(o+1)%e],s=t[(o+2)%e];return n.i(r.b)((i-o/e)*e,a,u,c,s)}}},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";e.a=function(t,e){var n=new Date;return t=+t,e-=t,function(r){return n.setTime(t+e*r),n}}},function(t,e,n){\"use strict\";var r=n(65);e.a=function(t,e){var i,o={},a={};null!==t&&\"object\"==typeof t||(t={}),null!==e&&\"object\"==typeof e||(e={});for(i in e)i in t?o[i]=n.i(r.a)(t[i],e[i]):a[i]=e[i];return function(t){for(i in o)a[i]=o[i](t);return a}}},function(t,e,n){\"use strict\";function r(t){return function(e){var r,o,a=e.length,u=new Array(a),c=new Array(a),s=new Array(a);for(r=0;r<a;++r)o=n.i(i.rgb)(e[r]),u[r]=o.r||0,c[r]=o.g||0,s[r]=o.b||0;return u=t(u),c=t(c),s=t(s),o.opacity=1,function(t){return o.r=u(t),o.g=c(t),o.b=s(t),o+\"\"}}}var i=n(10),o=n(64),a=n(119),u=n(31);e.a=function t(e){function r(t,e){var r=o((t=n.i(i.rgb)(t)).r,(e=n.i(i.rgb)(e)).r),a=o(t.g,e.g),c=o(t.b,e.b),s=n.i(u.a)(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=a(e),t.b=c(e),t.opacity=s(e),t+\"\"}}var o=n.i(u.c)(e);return r.gamma=t,r}(1);r(o.a),r(a.a)},function(t,e,n){\"use strict\";function r(t){return function(){return t}}function i(t){return function(e){return t(e)+\"\"}}var o=n(43),a=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,u=new RegExp(a.source,\"g\");e.a=function(t,e){var c,s,l,f=a.lastIndex=u.lastIndex=0,p=-1,h=[],d=[];for(t+=\"\",e+=\"\";(c=a.exec(t))&&(s=u.exec(e));)(l=s.index)>f&&(l=e.slice(f,l),h[p]?h[p]+=l:h[++p]=l),(c=c[0])===(s=s[0])?h[p]?h[p]+=s:h[++p]=s:(h[++p]=null,d.push({i:p,x:n.i(o.a)(c,s)})),f=u.lastIndex;return f<e.length&&(l=e.slice(f),h[p]?h[p]+=l:h[++p]=l),h.length<2?d[0]?i(d[0].x):r(e):(e=d.length,function(t){for(var n,r=0;r<e;++r)h[(n=d[r]).i]=n.x(t);return h.join(\"\")})}},function(t,e,n){\"use strict\";e.a=function(t,e){t=t.slice();var n,r=0,i=t.length-1,o=t[r],a=t[i];return a<o&&(n=r,r=i,i=n,n=o,o=a,a=n),t[r]=e.floor(o),t[i]=e.ceil(a),t}},function(t,e,n){\"use strict\";e.a=function(t){return+t}},function(t,e,n){\"use strict\";function r(t){function e(e){var n=e+\"\",r=u.get(n);if(!r){if(s!==a)return s;u.set(n,r=c.push(e))}return t[(r-1)%t.length]}var u=n.i(i.a)(),c=[],s=a;return t=null==t?[]:o.b.call(t),e.domain=function(t){if(!arguments.length)return c.slice();c=[],u=n.i(i.a)();for(var r,o,a=-1,s=t.length;++a<s;)u.has(o=(r=t[a])+\"\")||u.set(o,c.push(r));return e},e.range=function(n){return arguments.length?(t=o.b.call(n),e):t.slice()},e.unknown=function(t){return arguments.length?(s=t,e):s},e.copy=function(){return r().domain(c).range(t).unknown(s)},e}n.d(e,\"b\",function(){return a}),e.a=r;var i=n(211),o=n(16),a={name:\"implicit\"}},function(t,e,n){\"use strict\";function r(t){return new Date(t)}function i(t){return t instanceof Date?+t:+new Date(+t)}function o(t,e,c,s,b,x,w,C,k){function E(n){return(w(n)<n?A:x(n)<n?P:b(n)<n?O:s(n)<n?I:e(n)<n?c(n)<n?D:R:t(n)<n?L:U)(n)}function M(e,r,i,o){if(null==e&&(e=10),\"number\"==typeof e){var u=Math.abs(i-r)/e,c=n.i(a.bisector)(function(t){return t[2]}).right(F,u);c===F.length?(o=n.i(a.tickStep)(r/_,i/_,e),e=t):c?(c=F[u/F[c-1][2]<F[c][2]/u?c-1:c],o=c[1],e=c[0]):(o=Math.max(n.i(a.tickStep)(r,i,e),1),e=C)}return null==o?e:e.every(o)}var T=n.i(f.a)(f.b,u.a),S=T.invert,N=T.domain,A=k(\".%L\"),P=k(\":%S\"),O=k(\"%I:%M\"),I=k(\"%I %p\"),D=k(\"%a %d\"),R=k(\"%b %d\"),L=k(\"%B\"),U=k(\"%Y\"),F=[[w,1,h],[w,5,5*h],[w,15,15*h],[w,30,30*h],[x,1,d],[x,5,5*d],[x,15,15*d],[x,30,30*d],[b,1,v],[b,3,3*v],[b,6,6*v],[b,12,12*v],[s,1,g],[s,2,2*g],[c,1,m],[e,1,y],[e,3,3*y],[t,1,_]];return T.invert=function(t){return new Date(S(t))},T.domain=function(t){return arguments.length?N(l.a.call(t,i)):N().map(r)},T.ticks=function(t,e){var n,r=N(),i=r[0],o=r[r.length-1],a=o<i;return a&&(n=i,i=o,o=n),n=M(t,i,o,e),n=n?n.range(i,o+1):[],a?n.reverse():n},T.tickFormat=function(t,e){return null==e?E:k(e)},T.nice=function(t,e){var r=N();return(t=M(t,r[0],r[r.length-1],e))?N(n.i(p.a)(r,t)):T},T.copy=function(){return n.i(f.c)(T,o(t,e,c,s,b,x,w,C,k))},T}e.b=o;var a=n(7),u=n(30),c=n(80),s=n(78),l=n(16),f=n(44),p=n(125),h=1e3,d=60*h,v=60*d,g=24*v,m=7*g,y=30*g,_=365*g;e.a=function(){return o(c.e,c.q,c.r,c.d,c.s,c.t,c.u,c.v,s.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(257);n.d(e,\"create\",function(){return r.a});var i=n(45);n.d(e,\"creator\",function(){return i.a});var o=n(258);n.d(e,\"local\",function(){return o.a});var a=n(130);n.d(e,\"matcher\",function(){return a.a});var u=n(259);n.d(e,\"mouse\",function(){return u.a});var c=n(68);n.d(e,\"namespace\",function(){return c.a});var s=n(69);n.d(e,\"namespaces\",function(){return s.a});var l=n(46);n.d(e,\"clientPoint\",function(){return l.a});var f=n(131);n.d(e,\"select\",function(){return f.a});var p=n(260);n.d(e,\"selectAll\",function(){return p.a});var h=n(8);n.d(e,\"selection\",function(){return h.a});var d=n(71);n.d(e,\"selector\",function(){return d.a});var v=n(135);n.d(e,\"selectorAll\",function(){return v.a});var g=n(134);n.d(e,\"style\",function(){return g.a});var m=n(288);n.d(e,\"touch\",function(){return m.a});var y=n(289);n.d(e,\"touches\",function(){return y.a});var _=n(73);n.d(e,\"window\",function(){return _.a});var b=n(70);n.d(e,\"event\",function(){return b.a}),n.d(e,\"customEvent\",function(){return b.b})},function(t,e,n){\"use strict\";var r=function(t){return function(){return this.matches(t)}};if(\"undefined\"!=typeof document){var i=document.documentElement;if(!i.matches){var o=i.webkitMatchesSelector||i.msMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector;r=function(t){return function(){return o.call(this,t)}}}}e.a=r},function(t,e,n){\"use strict\";var r=n(8);e.a=function(t){return\"string\"==typeof t?new r.b([[document.querySelector(t)]],[document.documentElement]):new r.b([[t]],r.c)}},function(t,e,n){\"use strict\";function r(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}e.b=r;var i=n(133),o=n(8);e.a=function(){return new o.b(this._enter||this._groups.map(i.a),this._parents)},r.prototype={constructor:r,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}}},function(t,e,n){\"use strict\";e.a=function(t){return new Array(t.length)}},function(t,e,n){\"use strict\";function r(t){return function(){this.style.removeProperty(t)}}function i(t,e,n){return function(){this.style.setProperty(t,e,n)}}function o(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function a(t,e){return t.style.getPropertyValue(e)||n.i(u.a)(t).getComputedStyle(t,null).getPropertyValue(e)}e.a=a;var u=n(73);e.b=function(t,e,n){return arguments.length>1?this.each((null==e?r:\"function\"==typeof e?o:i)(t,e,null==n?\"\":n)):a(this.node(),t)}},function(t,e,n){\"use strict\";function r(){return[]}e.a=function(t){return null==t?r:function(){return this.querySelectorAll(t)}}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(290);n.d(e,\"arc\",function(){return r.a});var i=n(137);n.d(e,\"area\",function(){return i.a});var o=n(75);n.d(e,\"line\",function(){return o.a});var a=n(311);n.d(e,\"pie\",function(){return a.a});var u=n(291);n.d(e,\"areaRadial\",function(){return u.a}),n.d(e,\"radialArea\",function(){return u.a});var c=n(142);n.d(e,\"lineRadial\",function(){return c.a}),n.d(e,\"radialLine\",function(){return c.a});var s=n(143);n.d(e,\"pointRadial\",function(){return s.a});var l=n(303);n.d(e,\"linkHorizontal\",function(){return l.a}),n.d(e,\"linkVertical\",function(){return l.b}),n.d(e,\"linkRadial\",function(){return l.c});var f=n(313);n.d(e,\"symbol\",function(){return f.a}),n.d(e,\"symbols\",function(){return f.b});var p=n(144);n.d(e,\"symbolCircle\",function(){return p.a});var h=n(145);n.d(e,\"symbolCross\",function(){return h.a});var d=n(146);n.d(e,\"symbolDiamond\",function(){return d.a});var v=n(147);n.d(e,\"symbolSquare\",function(){return v.a});var g=n(148);n.d(e,\"symbolStar\",function(){return g.a});var m=n(149);n.d(e,\"symbolTriangle\",function(){return m.a});var y=n(150);n.d(e,\"symbolWye\",function(){return y.a});var _=n(292);n.d(e,\"curveBasisClosed\",function(){return _.a});var b=n(293);n.d(e,\"curveBasisOpen\",function(){return b.a});var x=n(47);n.d(e,\"curveBasis\",function(){return x.a});var w=n(294);n.d(e,\"curveBundle\",function(){return w.a});var C=n(139);n.d(e,\"curveCardinalClosed\",function(){return C.a});var k=n(140);n.d(e,\"curveCardinalOpen\",function(){return k.a});var E=n(48);n.d(e,\"curveCardinal\",function(){return E.a});var M=n(295);n.d(e,\"curveCatmullRomClosed\",function(){return M.a});var T=n(296);n.d(e,\"curveCatmullRomOpen\",function(){return T.a});var S=n(74);n.d(e,\"curveCatmullRom\",function(){return S.a});var N=n(297);n.d(e,\"curveLinearClosed\",function(){return N.a});var A=n(49);n.d(e,\"curveLinear\",function(){return A.a});var P=n(298);n.d(e,\"curveMonotoneX\",function(){return P.a}),n.d(e,\"curveMonotoneY\",function(){return P.b});var O=n(299);n.d(e,\"curveNatural\",function(){return O.a});var I=n(300);n.d(e,\"curveStep\",function(){return I.a}),n.d(e,\"curveStepAfter\",function(){return I.b}),n.d(e,\"curveStepBefore\",function(){return I.c});var D=n(312);n.d(e,\"stack\",function(){return D.a});var R=n(305);n.d(e,\"stackOffsetExpand\",function(){return R.a});var L=n(304);n.d(e,\"stackOffsetDiverging\",function(){return L.a});var U=n(36);n.d(e,\"stackOffsetNone\",function(){return U.a});var F=n(306);n.d(e,\"stackOffsetSilhouette\",function(){return F.a});var j=n(307);n.d(e,\"stackOffsetWiggle\",function(){return j.a});var B=n(76);n.d(e,\"stackOrderAscending\",function(){return B.a});var V=n(308);n.d(e,\"stackOrderDescending\",function(){return V.a});var W=n(309);n.d(e,\"stackOrderInsideOut\",function(){return W.a});var z=n(37);n.d(e,\"stackOrderNone\",function(){return z.a});var H=n(310);n.d(e,\"stackOrderReverse\",function(){return H.a})},function(t,e,n){\"use strict\";var r=n(32),i=n(17),o=n(49),a=n(75),u=n(77);e.a=function(){function t(t){var e,i,o,a,u,g=t.length,m=!1,y=new Array(g),_=new Array(g);for(null==h&&(v=d(u=n.i(r.a)())),e=0;e<=g;++e){if(!(e<g&&p(a=t[e],e,t))===m)if(m=!m)i=e,v.areaStart(),v.lineStart();else{for(v.lineEnd(),v.lineStart(),o=e-1;o>=i;--o)v.point(y[o],_[o]);v.lineEnd(),v.areaEnd()}m&&(y[e]=+c(a,e,t),_[e]=+l(a,e,t),v.point(s?+s(a,e,t):y[e],f?+f(a,e,t):_[e]))}if(u)return v=null,u+\"\"||null}function e(){return n.i(a.a)().defined(p).curve(d).context(h)}var c=u.a,s=null,l=n.i(i.a)(0),f=u.b,p=n.i(i.a)(!0),h=null,d=o.a,v=null;return t.x=function(e){return arguments.length?(c=\"function\"==typeof e?e:n.i(i.a)(+e),s=null,t):c},t.x0=function(e){return arguments.length?(c=\"function\"==typeof e?e:n.i(i.a)(+e),t):c},t.x1=function(e){return arguments.length?(s=null==e?null:\"function\"==typeof e?e:n.i(i.a)(+e),t):s},t.y=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(i.a)(+e),f=null,t):l},t.y0=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(i.a)(+e),t):l},t.y1=function(e){return arguments.length?(f=null==e?null:\"function\"==typeof e?e:n.i(i.a)(+e),t):f},t.lineX0=t.lineY0=function(){return e().x(c).y(l)},t.lineY1=function(){return e().x(c).y(f)},t.lineX1=function(){return e().x(s).y(l)},t.defined=function(e){return arguments.length?(p=\"function\"==typeof e?e:n.i(i.a)(!!e),t):p},t.curve=function(e){return arguments.length?(d=e,null!=h&&(v=d(h)),t):d},t.context=function(e){return arguments.length?(null==e?h=v=null:v=d(h=e),t):h},t}},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});var r=Array.prototype.slice},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._k=(1-e)/6}e.b=r;var i=n(50),o=n(48);r.prototype={areaStart:i.a,areaEnd:i.a,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:n.i(o.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return new r(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._k=(1-e)/6}e.b=r;var i=n(48);r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:n.i(i.c)(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return new r(t,e)}return n.tension=function(e){return t(+e)},n}(0)},function(t,e,n){\"use strict\";function r(t){this._curve=t}function i(t){function e(e){return new r(t(e))}return e._curve=t,e}n.d(e,\"b\",function(){return a}),e.a=i;var o=n(49),a=i(o.a);r.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}}},function(t,e,n){\"use strict\";function r(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(n.i(i.a)(t)):e()._curve},t}e.b=r;var i=n(141),o=n(75);e.a=function(){return r(n.i(o.a)().curve(i.b))}},function(t,e,n){\"use strict\";e.a=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}},function(t,e,n){\"use strict\";var r=n(35);e.a={draw:function(t,e){var n=Math.sqrt(e/r.b);t.moveTo(n,0),t.arc(0,0,n,0,r.c)}}},function(t,e,n){\"use strict\";e.a={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}}},function(t,e,n){\"use strict\";var r=Math.sqrt(1/3),i=2*r;e.a={draw:function(t,e){var n=Math.sqrt(e/i),o=n*r;t.moveTo(0,-n),t.lineTo(o,0),t.lineTo(0,n),t.lineTo(-o,0),t.closePath()}}},function(t,e,n){\"use strict\";e.a={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}}},function(t,e,n){\"use strict\";var r=n(35),i=Math.sin(r.b/10)/Math.sin(7*r.b/10),o=Math.sin(r.c/10)*i,a=-Math.cos(r.c/10)*i;e.a={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),i=o*n,u=a*n;t.moveTo(0,-n),t.lineTo(i,u);for(var c=1;c<5;++c){var s=r.c*c/5,l=Math.cos(s),f=Math.sin(s);t.lineTo(f*n,-l*n),t.lineTo(l*i-f*u,f*i+l*u)}t.closePath()}}},function(t,e,n){\"use strict\";var r=Math.sqrt(3);e.a={draw:function(t,e){var n=-Math.sqrt(e/(3*r));t.moveTo(0,2*n),t.lineTo(-r*n,-n),t.lineTo(r*n,-n),t.closePath()}}},function(t,e,n){\"use strict\";var r=-.5,i=Math.sqrt(3)/2,o=1/Math.sqrt(12),a=3*(o/2+1);e.a={draw:function(t,e){var n=Math.sqrt(e/a),u=n/2,c=n*o,s=u,l=n*o+n,f=-s,p=l;t.moveTo(u,c),t.lineTo(s,l),t.lineTo(f,p),t.lineTo(r*u-i*c,i*u+r*c),t.lineTo(r*s-i*l,i*s+r*l),t.lineTo(r*f-i*p,i*f+r*p),t.lineTo(r*u+i*c,r*c-i*u),t.lineTo(r*s+i*l,r*l-i*s),t.lineTo(r*f+i*p,r*p-i*f),t.closePath()}}},function(t,e,n){\"use strict\";function r(t){return t.toISOString()}n.d(e,\"b\",function(){return o});var i=n(79),o=\"%Y-%m-%dT%H:%M:%S.%LZ\",a=Date.prototype.toISOString?r:n.i(i.d)(o);e.a=a},function(t,e,n){\"use strict\";function r(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function i(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function o(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function a(t){function e(t,e){return function(n){var r,i,o,a=[],u=-1,c=0,s=t.length;for(n instanceof Date||(n=new Date(+n));++u<s;)37===t.charCodeAt(u)&&(a.push(t.slice(c,u)),null!=(i=dt[r=t.charAt(++u)])?r=t.charAt(++u):i=\"e\"===r?\" \":\"0\",(o=e[r])&&(r=o(n,i)),a.push(r),c=u+1);return a.push(t.slice(c,u)),a.join(\"\")}}function a(t,e){return function(r){var a,c,s=o(1900),l=u(s,t,r+=\"\",0);if(l!=r.length)return null;if(\"Q\"in s)return new Date(s.Q);if(\"p\"in s&&(s.H=s.H%12+12*s.p),\"V\"in s){if(s.V<1||s.V>53)return null;\"w\"in s||(s.w=1),\"Z\"in s?(a=i(o(s.y)),c=a.getUTCDay(),a=c>4||0===c?ht.a.ceil(a):n.i(ht.a)(a),a=ht.b.offset(a,7*(s.V-1)),s.y=a.getUTCFullYear(),s.m=a.getUTCMonth(),s.d=a.getUTCDate()+(s.w+6)%7):(a=e(o(s.y)),c=a.getDay(),a=c>4||0===c?ht.c.ceil(a):n.i(ht.c)(a),a=ht.d.offset(a,7*(s.V-1)),s.y=a.getFullYear(),s.m=a.getMonth(),s.d=a.getDate()+(s.w+6)%7)}else(\"W\"in s||\"U\"in s)&&(\"w\"in s||(s.w=\"u\"in s?s.u%7:\"W\"in s?1:0),c=\"Z\"in s?i(o(s.y)).getUTCDay():e(o(s.y)).getDay(),s.m=0,s.d=\"W\"in s?(s.w+6)%7+7*s.W-(c+5)%7:s.w+7*s.U-(c+6)%7);return\"Z\"in s?(s.H+=s.Z/100|0,s.M+=s.Z%100,i(s)):e(s)}}function u(t,e,n,r){for(var i,o,a=0,u=e.length,c=n.length;a<u;){if(r>=c)return-1;if(37===(i=e.charCodeAt(a++))){if(i=e.charAt(a++),!(o=Zt[i in dt?e.charAt(a++):i])||(r=o(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}function c(t,e,n){var r=Bt.exec(e.slice(n));return r?(t.p=Vt[r[0].toLowerCase()],n+r[0].length):-1}function vt(t,e,n){var r=Ht.exec(e.slice(n));return r?(t.w=qt[r[0].toLowerCase()],n+r[0].length):-1}function gt(t,e,n){var r=Wt.exec(e.slice(n));return r?(t.w=zt[r[0].toLowerCase()],n+r[0].length):-1}function mt(t,e,n){var r=Gt.exec(e.slice(n));return r?(t.m=$t[r[0].toLowerCase()],n+r[0].length):-1}function yt(t,e,n){var r=Yt.exec(e.slice(n));return r?(t.m=Kt[r[0].toLowerCase()],n+r[0].length):-1}function _t(t,e,n){return u(t,Ot,e,n)}function bt(t,e,n){return u(t,It,e,n)}function xt(t,e,n){return u(t,Dt,e,n)}function wt(t){return Ut[t.getDay()]}function Ct(t){return Lt[t.getDay()]}function kt(t){return jt[t.getMonth()]}function Et(t){return Ft[t.getMonth()]}function Mt(t){return Rt[+(t.getHours()>=12)]}function Tt(t){return Ut[t.getUTCDay()]}function St(t){return Lt[t.getUTCDay()]}function Nt(t){return jt[t.getUTCMonth()]}function At(t){return Ft[t.getUTCMonth()]}function Pt(t){return Rt[+(t.getUTCHours()>=12)]}var Ot=t.dateTime,It=t.date,Dt=t.time,Rt=t.periods,Lt=t.days,Ut=t.shortDays,Ft=t.months,jt=t.shortMonths,Bt=s(Rt),Vt=l(Rt),Wt=s(Lt),zt=l(Lt),Ht=s(Ut),qt=l(Ut),Yt=s(Ft),Kt=l(Ft),Gt=s(jt),$t=l(jt),Xt={a:wt,A:Ct,b:kt,B:Et,c:null,d:A,e:A,f:R,H:P,I:O,j:I,L:D,m:L,M:U,p:Mt,Q:ft,s:pt,S:F,u:j,U:B,V:V,w:W,W:z,x:null,X:null,y:H,Y:q,Z:Y,\"%\":lt},Qt={a:Tt,A:St,b:Nt,B:At,c:null,d:K,e:K,f:Z,H:G,I:$,j:X,L:Q,m:J,M:tt,p:Pt,Q:ft,s:pt,S:et,u:nt,U:rt,V:it,w:ot,W:at,x:null,X:null,y:ut,Y:ct,Z:st,\"%\":lt},Zt={a:vt,A:gt,b:mt,B:yt,c:_t,d:b,e:b,f:M,H:w,I:w,j:x,L:E,m:_,M:C,p:c,Q:S,s:N,S:k,u:p,U:h,V:d,w:f,W:v,x:bt,X:xt,y:m,Y:g,Z:y,\"%\":T};return Xt.x=e(It,Xt),Xt.X=e(Dt,Xt),Xt.c=e(Ot,Xt),Qt.x=e(It,Qt),Qt.X=e(Dt,Qt),Qt.c=e(Ot,Qt),{format:function(t){var n=e(t+=\"\",Xt);return n.toString=function(){return t},n},parse:function(t){var e=a(t+=\"\",r);return e.toString=function(){return t},e},utcFormat:function(t){var n=e(t+=\"\",Qt);return n.toString=function(){return t},n},utcParse:function(t){var e=a(t,i);return e.toString=function(){return t},e}}}function u(t,e,n){var r=t<0?\"-\":\"\",i=(r?-t:t)+\"\",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function c(t){return t.replace(mt,\"\\\\$&\")}function s(t){return new RegExp(\"^(?:\"+t.map(c).join(\"|\")+\")\",\"i\")}function l(t){for(var e={},n=-1,r=t.length;++n<r;)e[t[n].toLowerCase()]=n;return e}function f(t,e,n){var r=vt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function p(t,e,n){var r=vt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function h(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function d(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function v(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function g(t,e,n){var r=vt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function m(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function y(t,e,n){var r=/^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||\"00\")),n+r[0].length):-1}function _(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function b(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function x(t,e,n){var r=vt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function w(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function C(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function k(t,e,n){var r=vt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function E(t,e,n){var r=vt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function M(t,e,n){var r=vt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function T(t,e,n){var r=gt.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function S(t,e,n){var r=vt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function N(t,e,n){var r=vt.exec(e.slice(n));return r?(t.Q=1e3*+r[0],n+r[0].length):-1}function A(t,e){return u(t.getDate(),e,2)}function P(t,e){return u(t.getHours(),e,2)}function O(t,e){return u(t.getHours()%12||12,e,2)}function I(t,e){return u(1+ht.d.count(n.i(ht.e)(t),t),e,3)}function D(t,e){return u(t.getMilliseconds(),e,3)}function R(t,e){return D(t,e)+\"000\"}function L(t,e){return u(t.getMonth()+1,e,2)}function U(t,e){return u(t.getMinutes(),e,2)}function F(t,e){return u(t.getSeconds(),e,2)}function j(t){var e=t.getDay();return 0===e?7:e}function B(t,e){return u(ht.f.count(n.i(ht.e)(t),t),e,2)}function V(t,e){var r=t.getDay();return t=r>=4||0===r?n.i(ht.g)(t):ht.g.ceil(t),u(ht.g.count(n.i(ht.e)(t),t)+(4===n.i(ht.e)(t).getDay()),e,2)}function W(t){return t.getDay()}function z(t,e){return u(ht.c.count(n.i(ht.e)(t),t),e,2)}function H(t,e){return u(t.getFullYear()%100,e,2)}function q(t,e){return u(t.getFullYear()%1e4,e,4)}function Y(t){var e=t.getTimezoneOffset();return(e>0?\"-\":(e*=-1,\"+\"))+u(e/60|0,\"0\",2)+u(e%60,\"0\",2)}function K(t,e){return u(t.getUTCDate(),e,2)}function G(t,e){return u(t.getUTCHours(),e,2)}function $(t,e){return u(t.getUTCHours()%12||12,e,2)}function X(t,e){return u(1+ht.b.count(n.i(ht.h)(t),t),e,3)}function Q(t,e){return u(t.getUTCMilliseconds(),e,3)}function Z(t,e){return Q(t,e)+\"000\"}function J(t,e){return u(t.getUTCMonth()+1,e,2)}function tt(t,e){return u(t.getUTCMinutes(),e,2)}function et(t,e){return u(t.getUTCSeconds(),e,2)}function nt(t){var e=t.getUTCDay();return 0===e?7:e}function rt(t,e){return u(ht.i.count(n.i(ht.h)(t),t),e,2)}function it(t,e){var r=t.getUTCDay();return t=r>=4||0===r?n.i(ht.j)(t):ht.j.ceil(t),u(ht.j.count(n.i(ht.h)(t),t)+(4===n.i(ht.h)(t).getUTCDay()),e,2)}function ot(t){return t.getUTCDay()}function at(t,e){return u(ht.a.count(n.i(ht.h)(t),t),e,2)}function ut(t,e){return u(t.getUTCFullYear()%100,e,2)}function ct(t,e){return u(t.getUTCFullYear()%1e4,e,4)}function st(){return\"+0000\"}function lt(){return\"%\"}function ft(t){return+t}function pt(t){return Math.floor(+t/1e3)}e.a=a;var ht=n(80),dt={\"-\":\"\",_:\" \",0:\"0\"},vt=/^\\s*\\d+/,gt=/^%/,mt=/[\\\\^$*+?|[\\]().{}]/g},function(t,e,n){\"use strict\";var r=n(11),i={listen:function(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!1),{remove:function(){t.removeEventListener(e,n,!1)}}):t.attachEvent?(t.attachEvent(\"on\"+e,n),{remove:function(){t.detachEvent(\"on\"+e,n)}}):void 0},capture:function(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!0),{remove:function(){t.removeEventListener(e,n,!0)}}):{remove:r}},registerDefault:function(){}};t.exports=i},function(t,e,n){\"use strict\";function r(t){try{t.focus()}catch(t){}}t.exports=r},function(t,e,n){\"use strict\";function r(t){if(void 0===(t=t||(\"undefined\"!=typeof document?document:void 0)))return null;try{return t.activeElement||t.body}catch(e){return t.body}}t.exports=r},function(t,e){function n(){throw new Error(\"setTimeout has not been defined\")}function r(){throw new Error(\"clearTimeout has not been defined\")}function i(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function o(t){if(f===clearTimeout)return clearTimeout(t);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){v&&h&&(v=!1,h.length?d=h.concat(d):g=-1,d.length&&u())}function u(){if(!v){var t=i(a);v=!0;for(var e=d.length;e;){for(h=d,d=[];++g<e;)h&&h[g].run();g=-1,e=d.length}h=null,v=!1,o(t)}}function c(t,e){this.fun=t,this.array=e}function s(){}var l,f,p=t.exports={};!function(){try{l=\"function\"==typeof setTimeout?setTimeout:n}catch(t){l=n}try{f=\"function\"==typeof clearTimeout?clearTimeout:r}catch(t){f=r}}();var h,d=[],v=!1,g=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];d.push(new c(t,e)),1!==d.length||v||i(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=s,p.addListener=s,p.once=s,p.off=s,p.removeListener=s,p.removeAllListeners=s,p.emit=s,p.prependListener=s,p.prependOnceListener=s,p.listeners=function(t){return[]},p.binding=function(t){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},function(t,e,n){\"use strict\";var r=n(343);t.exports=function(t){return r(t,!1)}},function(t,e,n){\"use strict\";function r(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}var i={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},o=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(i).forEach(function(t){o.forEach(function(e){i[r(e,t)]=i[t]})});var a={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},u={isUnitlessNumber:i,shorthandPropertyExpansions:a};t.exports=u},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var i=n(1),o=n(18),a=(n(0),function(){function t(e){r(this,t),this._callbacks=null,this._contexts=null,this._arg=e}return t.prototype.enqueue=function(t,e){this._callbacks=this._callbacks||[],this._callbacks.push(t),this._contexts=this._contexts||[],this._contexts.push(e)},t.prototype.notifyAll=function(){var t=this._callbacks,e=this._contexts,n=this._arg;if(t&&e){t.length!==e.length&&i(\"24\"),this._callbacks=null,this._contexts=null;for(var r=0;r<t.length;r++)t[r].call(e[r],n);t.length=0,e.length=0}},t.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},t.prototype.rollback=function(t){this._callbacks&&this._contexts&&(this._callbacks.length=t,this._contexts.length=t)},t.prototype.reset=function(){this._callbacks=null,this._contexts=null},t.prototype.destructor=function(){this.reset()},t}());t.exports=o.addPoolingTo(a)},function(t,e,n){\"use strict\";function r(t){return!!s.hasOwnProperty(t)||!c.hasOwnProperty(t)&&(u.test(t)?(s[t]=!0,!0):(c[t]=!0,!1))}function i(t,e){return null==e||t.hasBooleanValue&&!e||t.hasNumericValue&&isNaN(e)||t.hasPositiveNumericValue&&e<1||t.hasOverloadedBooleanValue&&!1===e}var o=n(21),a=(n(4),n(9),n(407)),u=(n(2),new RegExp(\"^[\"+o.ATTRIBUTE_NAME_START_CHAR+\"][\"+o.ATTRIBUTE_NAME_CHAR+\"]*$\")),c={},s={},l={createMarkupForID:function(t){return o.ID_ATTRIBUTE_NAME+\"=\"+a(t)},setAttributeForID:function(t,e){t.setAttribute(o.ID_ATTRIBUTE_NAME,e)},createMarkupForRoot:function(){return o.ROOT_ATTRIBUTE_NAME+'=\"\"'},setAttributeForRoot:function(t){t.setAttribute(o.ROOT_ATTRIBUTE_NAME,\"\")},createMarkupForProperty:function(t,e){var n=o.properties.hasOwnProperty(t)?o.properties[t]:null;if(n){if(i(n,e))return\"\";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===e?r+'=\"\"':r+\"=\"+a(e)}return o.isCustomAttribute(t)?null==e?\"\":t+\"=\"+a(e):null},createMarkupForCustomAttribute:function(t,e){return r(t)&&null!=e?t+\"=\"+a(e):\"\"},setValueForProperty:function(t,e,n){var r=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(r){var a=r.mutationMethod;if(a)a(t,n);else{if(i(r,n))return void this.deleteValueForProperty(t,e);if(r.mustUseProperty)t[r.propertyName]=n;else{var u=r.attributeName,c=r.attributeNamespace;c?t.setAttributeNS(c,u,\"\"+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===n?t.setAttribute(u,\"\"):t.setAttribute(u,\"\"+n)}}}else if(o.isCustomAttribute(e))return void l.setValueForAttribute(t,e,n)},setValueForAttribute:function(t,e,n){if(r(e)){null==n?t.removeAttribute(e):t.setAttribute(e,\"\"+n)}},deleteValueForAttribute:function(t,e){t.removeAttribute(e)},deleteValueForProperty:function(t,e){var n=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(n){var r=n.mutationMethod;if(r)r(t,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?t[i]=!1:t[i]=\"\"}else t.removeAttribute(n.attributeName)}else o.isCustomAttribute(e)&&t.removeAttribute(e)}};t.exports=l},function(t,e,n){\"use strict\";var r={hasCachedChildNodes:1};t.exports=r},function(t,e,n){\"use strict\";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var t=this._currentElement.props,e=u.getValue(t);null!=e&&i(this,Boolean(t.multiple),e)}}function i(t,e,n){var r,i,o=c.getNodeFromInstance(t).options;if(e){for(r={},i=0;i<n.length;i++)r[\"\"+n[i]]=!0;for(i=0;i<o.length;i++){var a=r.hasOwnProperty(o[i].value);o[i].selected!==a&&(o[i].selected=a)}}else{for(r=\"\"+n,i=0;i<o.length;i++)if(o[i].value===r)return void(o[i].selected=!0);o.length&&(o[0].selected=!0)}}function o(t){var e=this._currentElement.props,n=u.executeOnChange(e,t);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),s.asap(r,this),n}var a=n(3),u=n(86),c=n(4),s=n(12),l=(n(2),!1),f={getHostProps:function(t,e){return a({},e,{onChange:t._wrapperState.onChange,value:void 0})},mountWrapper:function(t,e){var n=u.getValue(e);t._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:e.defaultValue,listeners:null,onChange:o.bind(t),wasMultiple:Boolean(e.multiple)},void 0===e.value||void 0===e.defaultValue||l||(l=!0)},getSelectValueContext:function(t){return t._wrapperState.initialValue},postUpdateWrapper:function(t){var e=t._currentElement.props;t._wrapperState.initialValue=void 0;var n=t._wrapperState.wasMultiple;t._wrapperState.wasMultiple=Boolean(e.multiple);var r=u.getValue(e);null!=r?(t._wrapperState.pendingUpdate=!1,i(t,Boolean(e.multiple),r)):n!==Boolean(e.multiple)&&(null!=e.defaultValue?i(t,Boolean(e.multiple),e.defaultValue):i(t,Boolean(e.multiple),e.multiple?[]:\"\"))}};t.exports=f},function(t,e,n){\"use strict\";var r,i={injectEmptyComponentFactory:function(t){r=t}},o={create:function(t){return r(t)}};o.injection=i,t.exports=o},function(t,e,n){\"use strict\";var r={logTopLevelRenders:!1};t.exports=r},function(t,e,n){\"use strict\";function r(t){return u||a(\"111\",t.type),new u(t)}function i(t){return new c(t)}function o(t){return t instanceof c}var a=n(1),u=(n(0),null),c=null,s={injectGenericComponentClass:function(t){u=t},injectTextComponentClass:function(t){c=t}},l={createInternalComponent:r,createInstanceForText:i,isTextComponent:o,injection:s};t.exports=l},function(t,e,n){\"use strict\";function r(t){return o(document.documentElement,t)}var i=n(367),o=n(331),a=n(154),u=n(155),c={hasSelectionCapabilities:function(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(\"input\"===e&&\"text\"===t.type||\"textarea\"===e||\"true\"===t.contentEditable)},getSelectionInformation:function(){var t=u();return{focusedElem:t,selectionRange:c.hasSelectionCapabilities(t)?c.getSelection(t):null}},restoreSelection:function(t){var e=u(),n=t.focusedElem,i=t.selectionRange;e!==n&&r(n)&&(c.hasSelectionCapabilities(n)&&c.setSelection(n,i),a(n))},getSelection:function(t){var e;if(\"selectionStart\"in t)e={start:t.selectionStart,end:t.selectionEnd};else if(document.selection&&t.nodeName&&\"input\"===t.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===t&&(e={start:-n.moveStart(\"character\",-t.value.length),end:-n.moveEnd(\"character\",-t.value.length)})}else e=i.getOffsets(t);return e||{start:0,end:0}},setSelection:function(t,e){var n=e.start,r=e.end;if(void 0===r&&(r=n),\"selectionStart\"in t)t.selectionStart=n,t.selectionEnd=Math.min(r,t.value.length);else if(document.selection&&t.nodeName&&\"input\"===t.nodeName.toLowerCase()){var o=t.createTextRange();o.collapse(!0),o.moveStart(\"character\",n),o.moveEnd(\"character\",r-n),o.select()}else i.setOffsets(t,e)}};t.exports=c},function(t,e,n){\"use strict\";function r(t,e){for(var n=Math.min(t.length,e.length),r=0;r<n;r++)if(t.charAt(r)!==e.charAt(r))return r;return t.length===e.length?-1:n}function i(t){return t?t.nodeType===D?t.documentElement:t.firstChild:null}function o(t){return t.getAttribute&&t.getAttribute(P)||\"\"}function a(t,e,n,r,i){var o;if(x.logTopLevelRenders){var a=t._currentElement.props.child,u=a.type;o=\"React mount: \"+(\"string\"==typeof u?u:u.displayName||u.name),console.time(o)}var c=k.mountComponent(t,n,null,_(t,e),i,0);o&&console.timeEnd(o),t._renderedComponent._topLevelWrapper=t,j._mountImageIntoNode(c,e,t,r,n)}function u(t,e,n,r){var i=M.ReactReconcileTransaction.getPooled(!n&&b.useCreateElement);i.perform(a,null,t,e,i,n,r),M.ReactReconcileTransaction.release(i)}function c(t,e,n){for(k.unmountComponent(t,n),e.nodeType===D&&(e=e.documentElement);e.lastChild;)e.removeChild(e.lastChild)}function s(t){var e=i(t);if(e){var n=y.getInstanceFromNode(e);return!(!n||!n._hostParent)}}function l(t){return!(!t||t.nodeType!==I&&t.nodeType!==D&&t.nodeType!==R)}function f(t){var e=i(t),n=e&&y.getInstanceFromNode(e);return n&&!n._hostParent?n:null}function p(t){var e=f(t);return e?e._hostContainerInfo._topLevelWrapper:null}var h=n(1),d=n(20),v=n(21),g=n(26),m=n(53),y=(n(15),n(4)),_=n(361),b=n(363),x=n(164),w=n(39),C=(n(9),n(377)),k=n(24),E=n(89),M=n(12),T=n(51),S=n(174),N=(n(0),n(57)),A=n(96),P=(n(2),v.ID_ATTRIBUTE_NAME),O=v.ROOT_ATTRIBUTE_NAME,I=1,D=9,R=11,L={},U=1,F=function(){this.rootID=U++};F.prototype.isReactComponent={},F.prototype.render=function(){return this.props.child},F.isReactTopLevelWrapper=!0;var j={TopLevelWrapper:F,_instancesByReactRootID:L,scrollMonitor:function(t,e){e()},_updateRootComponent:function(t,e,n,r,i){return j.scrollMonitor(r,function(){E.enqueueElementInternal(t,e,n),i&&E.enqueueCallbackInternal(t,i)}),t},_renderNewRootComponent:function(t,e,n,r){l(e)||h(\"37\"),m.ensureScrollValueMonitoring();var i=S(t,!1);M.batchedUpdates(u,i,e,n,r);var o=i._instance.rootID;return L[o]=i,i},renderSubtreeIntoContainer:function(t,e,n,r){return null!=t&&w.has(t)||h(\"38\"),j._renderSubtreeIntoContainer(t,e,n,r)},_renderSubtreeIntoContainer:function(t,e,n,r){E.validateCallback(r,\"ReactDOM.render\"),g.isValidElement(e)||h(\"39\",\"string\"==typeof e?\" Instead of passing a string like 'div', pass React.createElement('div') or <div />.\":\"function\"==typeof e?\" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.\":null!=e&&void 0!==e.props?\" This may be caused by unintentionally loading two independent copies of React.\":\"\");var a,u=g.createElement(F,{child:e});if(t){var c=w.get(t);a=c._processChildContext(c._context)}else a=T;var l=p(n);if(l){var f=l._currentElement,d=f.props.child;if(A(d,e)){var v=l._renderedComponent.getPublicInstance(),m=r&&function(){r.call(v)};return j._updateRootComponent(l,u,a,n,m),v}j.unmountComponentAtNode(n)}var y=i(n),_=y&&!!o(y),b=s(n),x=_&&!l&&!b,C=j._renderNewRootComponent(u,n,x,a)._renderedComponent.getPublicInstance();return r&&r.call(C),C},render:function(t,e,n){return j._renderSubtreeIntoContainer(null,t,e,n)},unmountComponentAtNode:function(t){l(t)||h(\"40\");var e=p(t);if(!e){s(t),1===t.nodeType&&t.hasAttribute(O);return!1}return delete L[e._instance.rootID],M.batchedUpdates(c,e,t,!1),!0},_mountImageIntoNode:function(t,e,n,o,a){if(l(e)||h(\"41\"),o){var u=i(e);if(C.canReuseMarkup(t,u))return void y.precacheNode(n,u);var c=u.getAttribute(C.CHECKSUM_ATTR_NAME);u.removeAttribute(C.CHECKSUM_ATTR_NAME);var s=u.outerHTML;u.setAttribute(C.CHECKSUM_ATTR_NAME,c);var f=t,p=r(f,s),v=\" (client) \"+f.substring(p-20,p+20)+\"\\n (server) \"+s.substring(p-20,p+20);e.nodeType===D&&h(\"42\",v)}if(e.nodeType===D&&h(\"43\"),a.useCreateElement){for(;e.lastChild;)e.removeChild(e.lastChild);d.insertTreeBefore(e,t,null)}else N(e,t),y.precacheNode(n,e.firstChild)}};t.exports=j},function(t,e,n){\"use strict\";var r=n(1),i=n(26),o=(n(0),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(t){return null===t||!1===t?o.EMPTY:i.isValidElement(t)?\"function\"==typeof t.type?o.COMPOSITE:o.HOST:void r(\"26\",t)}});t.exports=o},function(t,e,n){\"use strict\";function r(t,e){return null==e&&i(\"30\"),null==t?e:Array.isArray(t)?Array.isArray(e)?(t.push.apply(t,e),t):(t.push(e),t):Array.isArray(e)?[t].concat(e):[t,e]}var i=n(1);n(0);t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n){Array.isArray(t)?t.forEach(e,n):t&&e.call(n,t)}t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e;(e=t._renderedNodeType)===i.COMPOSITE;)t=t._renderedComponent;return e===i.HOST?t._renderedComponent:e===i.EMPTY?null:void 0}var i=n(168);t.exports=r},function(t,e,n){\"use strict\";function r(){return!o&&i.canUseDOM&&(o=\"textContent\"in document.documentElement?\"textContent\":\"innerText\"),o}var i=n(6),o=null;t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t.type,n=t.nodeName;return n&&\"input\"===n.toLowerCase()&&(\"checkbox\"===e||\"radio\"===e)}function i(t){return t._wrapperState.valueTracker}function o(t,e){t._wrapperState.valueTracker=e}function a(t){t._wrapperState.valueTracker=null}function u(t){var e;return t&&(e=r(t)?\"\"+t.checked:t.value),e}var c=n(4),s={_getTrackerFromNode:function(t){return i(c.getInstanceFromNode(t))},track:function(t){if(!i(t)){var e=c.getNodeFromInstance(t),n=r(e)?\"checked\":\"value\",u=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=\"\"+e[n];e.hasOwnProperty(n)||\"function\"!=typeof u.get||\"function\"!=typeof u.set||(Object.defineProperty(e,n,{enumerable:u.enumerable,configurable:!0,get:function(){return u.get.call(this)},set:function(t){s=\"\"+t,u.set.call(this,t)}}),o(t,{getValue:function(){return s},setValue:function(t){s=\"\"+t},stopTracking:function(){a(t),delete e[n]}}))}},updateValueIfChanged:function(t){if(!t)return!1;var e=i(t);if(!e)return s.track(t),!0;var n=e.getValue(),r=u(c.getNodeFromInstance(t));return r!==n&&(e.setValue(r),!0)},stopTracking:function(t){var e=i(t);e&&e.stopTracking()}};t.exports=s},function(t,e,n){\"use strict\";function r(t){if(t){var e=t.getName();if(e)return\" Check the render method of `\"+e+\"`.\"}return\"\"}function i(t){return\"function\"==typeof t&&void 0!==t.prototype&&\"function\"==typeof t.prototype.mountComponent&&\"function\"==typeof t.prototype.receiveComponent}function o(t,e){var n;if(null===t||!1===t)n=s.create(o);else if(\"object\"==typeof t){var u=t,c=u.type;if(\"function\"!=typeof c&&\"string\"!=typeof c){var p=\"\";p+=r(u._owner),a(\"130\",null==c?c:typeof c,p)}\"string\"==typeof u.type?n=l.createInternalComponent(u):i(u.type)?(n=new u.type(u),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new f(u)}else\"string\"==typeof t||\"number\"==typeof t?n=l.createInstanceForText(t):a(\"131\",typeof t);return n._mountIndex=0,n._mountImage=null,n}var a=n(1),u=n(3),c=n(358),s=n(163),l=n(165),f=(n(420),n(0),n(2),function(t){this.construct(t)});u(f.prototype,c,{_instantiateReactComponent:o}),t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return\"input\"===e?!!i[t.type]:\"textarea\"===e}var i={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},function(t,e,n){\"use strict\";var r=n(6),i=n(56),o=n(57),a=function(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&3===n.nodeType)return void(n.nodeValue=e)}t.textContent=e};r.canUseDOM&&(\"textContent\"in document.documentElement||(a=function(t,e){if(3===t.nodeType)return void(t.nodeValue=e);o(t,i(e))})),t.exports=a},function(t,e,n){\"use strict\";function r(t,e){return t&&\"object\"==typeof t&&null!=t.key?s.escape(t.key):e.toString(36)}function i(t,e,n,o){var p=typeof t;if(\"undefined\"!==p&&\"boolean\"!==p||(t=null),null===t||\"string\"===p||\"number\"===p||\"object\"===p&&t.$$typeof===u)return n(o,t,\"\"===e?l+r(t,0):e),1;var h,d,v=0,g=\"\"===e?l:e+f;if(Array.isArray(t))for(var m=0;m<t.length;m++)h=t[m],d=g+r(h,m),v+=i(h,d,n,o);else{var y=c(t);if(y){var _,b=y.call(t);if(y!==t.entries)for(var x=0;!(_=b.next()).done;)h=_.value,d=g+r(h,x++),v+=i(h,d,n,o);else for(;!(_=b.next()).done;){var w=_.value;w&&(h=w[1],d=g+s.escape(w[0])+f+r(h,0),v+=i(h,d,n,o))}}else if(\"object\"===p){var C=\"\",k=String(t);a(\"31\",\"[object Object]\"===k?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":k,C)}}return v}function o(t,e,n){return null==t?0:i(t,\"\",e,n)}var a=n(1),u=(n(15),n(373)),c=n(404),s=(n(0),n(85)),l=(n(2),\".\"),f=\":\";t.exports=o},function(t,e,n){\"use strict\";function r(t,e,n){this.props=t,this.context=e,this.refs=s,this.updater=n||c}function i(t,e,n){this.props=t,this.context=e,this.refs=s,this.updater=n||c}function o(){}var a=n(40),u=n(3),c=n(181),s=(n(182),n(51));n(0),n(421);r.prototype.isReactComponent={},r.prototype.setState=function(t,e){\"object\"!=typeof t&&\"function\"!=typeof t&&null!=t&&a(\"85\"),this.updater.enqueueSetState(this,t),e&&this.updater.enqueueCallback(this,e,\"setState\")},r.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this),t&&this.updater.enqueueCallback(this,t,\"forceUpdate\")};o.prototype=r.prototype,i.prototype=new o,i.prototype.constructor=i,u(i.prototype,r.prototype),i.prototype.isPureReactComponent=!0,t.exports={Component:r,PureComponent:i}},function(t,e,n){\"use strict\";function r(t){var e=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp(\"^\"+e.call(n).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");try{var i=e.call(t);return r.test(i)}catch(t){return!1}}function i(t){var e=s(t);if(e){var n=e.childIDs;l(t),n.forEach(i)}}function o(t,e,n){return\"\\n    in \"+(t||\"Unknown\")+(e?\" (at \"+e.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+e.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\")}function a(t){return null==t?\"#empty\":\"string\"==typeof t||\"number\"==typeof t?\"#text\":\"string\"==typeof t.type?t.type:t.type.displayName||t.type.name||\"Unknown\"}function u(t){var e,n=E.getDisplayName(t),r=E.getElement(t),i=E.getOwnerID(t);return i&&(e=E.getDisplayName(i)),o(n,r&&r._source,e)}var c,s,l,f,p,h,d,v=n(40),g=n(15),m=(n(0),n(2),\"function\"==typeof Array.from&&\"function\"==typeof Map&&r(Map)&&null!=Map.prototype&&\"function\"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&\"function\"==typeof Set&&r(Set)&&null!=Set.prototype&&\"function\"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(m){var y=new Map,_=new Set;c=function(t,e){y.set(t,e)},s=function(t){return y.get(t)},l=function(t){y.delete(t)},f=function(){return Array.from(y.keys())},p=function(t){_.add(t)},h=function(t){_.delete(t)},d=function(){return Array.from(_.keys())}}else{var b={},x={},w=function(t){return\".\"+t},C=function(t){return parseInt(t.substr(1),10)};c=function(t,e){var n=w(t);b[n]=e},s=function(t){var e=w(t);return b[e]},l=function(t){var e=w(t);delete b[e]},f=function(){return Object.keys(b).map(C)},p=function(t){var e=w(t);x[e]=!0},h=function(t){var e=w(t);delete x[e]},d=function(){return Object.keys(x).map(C)}}var k=[],E={onSetChildren:function(t,e){var n=s(t);n||v(\"144\"),n.childIDs=e;for(var r=0;r<e.length;r++){var i=e[r],o=s(i);o||v(\"140\"),null==o.childIDs&&\"object\"==typeof o.element&&null!=o.element&&v(\"141\"),o.isMounted||v(\"71\"),null==o.parentID&&(o.parentID=t),o.parentID!==t&&v(\"142\",i,o.parentID,t)}},onBeforeMountComponent:function(t,e,n){c(t,{element:e,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0})},onBeforeUpdateComponent:function(t,e){var n=s(t);n&&n.isMounted&&(n.element=e)},onMountComponent:function(t){var e=s(t);e||v(\"144\"),e.isMounted=!0,0===e.parentID&&p(t)},onUpdateComponent:function(t){var e=s(t);e&&e.isMounted&&e.updateCount++},onUnmountComponent:function(t){var e=s(t);if(e){e.isMounted=!1;0===e.parentID&&h(t)}k.push(t)},purgeUnmountedComponents:function(){if(!E._preventPurging){for(var t=0;t<k.length;t++){i(k[t])}k.length=0}},isMounted:function(t){var e=s(t);return!!e&&e.isMounted},getCurrentStackAddendum:function(t){var e=\"\";if(t){var n=a(t),r=t._owner;e+=o(n,t._source,r&&r.getName())}var i=g.current,u=i&&i._debugID;return e+=E.getStackAddendumByID(u)},getStackAddendumByID:function(t){for(var e=\"\";t;)e+=u(t),t=E.getParentID(t);return e},getChildIDs:function(t){var e=s(t);return e?e.childIDs:[]},getDisplayName:function(t){var e=E.getElement(t);return e?a(e):null},getElement:function(t){var e=s(t);return e?e.element:null},getOwnerID:function(t){var e=E.getElement(t);return e&&e._owner?e._owner._debugID:null},getParentID:function(t){var e=s(t);return e?e.parentID:null},getSource:function(t){var e=s(t),n=e?e.element:null;return null!=n?n._source:null},getText:function(t){var e=E.getElement(t);return\"string\"==typeof e?e:\"number\"==typeof e?\"\"+e:null},getUpdateCount:function(t){var e=s(t);return e?e.updateCount:0},getRootIDs:d,getRegisteredIDs:f,pushNonStandardWarningStack:function(t,e){if(\"function\"==typeof console.reactStack){var n=[],r=g.current,i=r&&r._debugID;try{for(t&&n.push({name:i?E.getDisplayName(i):null,fileName:e?e.fileName:null,lineNumber:e?e.lineNumber:null});i;){var o=E.getElement(i),a=E.getParentID(i),u=E.getOwnerID(i),c=u?E.getDisplayName(u):null,s=o&&o._source;n.push({name:c,fileName:s?s.fileName:null,lineNumber:s?s.lineNumber:null}),i=a}}catch(t){}console.reactStack(n)}},popNonStandardWarningStack:function(){\"function\"==typeof console.reactStackEnd&&console.reactStackEnd()}};t.exports=E},function(t,e,n){\"use strict\";var r=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;t.exports=r},function(t,e,n){\"use strict\";var r=(n(2),{isMounted:function(t){return!1},enqueueCallback:function(t,e){},enqueueForceUpdate:function(t){},enqueueReplaceState:function(t,e){},enqueueSetState:function(t,e){}});t.exports=r},function(t,e,n){\"use strict\";var r=!1;t.exports=r},,function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(41),l=r(s),f=n(129),p=n(66),h=(n(7),n(29)),d=n(78),v=n(112),g=n(136),m=n(10),y=n(38),_=n(58),b=r(_),x=function(t){function e(){i(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return window.lastAdditiveForceArrayVisualizer=t,t.topOffset=28,t.leftOffset=80,t.height=350,t.effectFormat=(0,h.format)(\".2\"),t.redraw=(0,y.debounce)(function(){return t.draw()},200),t}return a(e,t),c(e,[{key:\"componentDidMount\",value:function(){var t=this;this.mainGroup=this.svg.append(\"g\"),this.onTopGroup=this.svg.append(\"g\"),this.xaxisElement=this.onTopGroup.append(\"g\").attr(\"transform\",\"translate(0,35)\").attr(\"class\",\"force-bar-array-xaxis\"),this.yaxisElement=this.onTopGroup.append(\"g\").attr(\"transform\",\"translate(0,35)\").attr(\"class\",\"force-bar-array-yaxis\"),this.hoverGroup1=this.svg.append(\"g\"),this.hoverGroup2=this.svg.append(\"g\"),this.baseValueTitle=this.svg.append(\"text\"),this.hoverLine=this.svg.append(\"line\"),this.hoverxOutline=this.svg.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#fff\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",\"6\").attr(\"font-size\",\"12px\"),this.hoverx=this.svg.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").attr(\"font-size\",\"12px\"),this.hoverxTitle=this.svg.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"opacity\",.6).attr(\"font-size\",\"12px\"),this.hoveryOutline=this.svg.append(\"text\").attr(\"text-anchor\",\"end\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#fff\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",\"6\").attr(\"font-size\",\"12px\"),this.hovery=this.svg.append(\"text\").attr(\"text-anchor\",\"end\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").attr(\"font-size\",\"12px\"),this.xlabel=this.wrapper.select(\".additive-force-array-xlabel\"),this.ylabel=this.wrapper.select(\".additive-force-array-ylabel\");var e=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in b.default.colors?e=b.default.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),e=b.default.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(e=this.props.plot_cmap),this.colors=e.map(function(t){return(0,m.hsl)(t)}),this.brighterColors=[1.45,1.6].map(function(e,n){return t.colors[n].brighter(e)});var n=(0,h.format)(\",.4\");if(null!=this.props.ordering_keys&&null!=this.props.ordering_keys_time_format){var r=function(t){return\"object\"==(void 0===t?\"undefined\":u(t))?this.formatTime(t):n(t)};this.parseTime=(0,d.timeParse)(this.props.ordering_keys_time_format),this.formatTime=(0,d.timeFormat)(this.props.ordering_keys_time_format),this.xtickFormat=r}else this.parseTime=null,this.formatTime=null,this.xtickFormat=n;this.xscale=(0,p.scaleLinear)(),this.xaxis=(0,v.axisBottom)().scale(this.xscale).tickSizeInner(4).tickSizeOuter(0).tickFormat(function(e){return t.xtickFormat(e)}).tickPadding(-18),this.ytickFormat=n,this.yscale=(0,p.scaleLinear)(),this.yaxis=(0,v.axisLeft)().scale(this.yscale).tickSizeInner(4).tickSizeOuter(0).tickFormat(function(e){return t.ytickFormat(t.invLinkFunction(e))}).tickPadding(2),this.xlabel.node().onchange=function(){return t.internalDraw()},this.ylabel.node().onchange=function(){return t.internalDraw()},this.svg.on(\"mousemove\",function(e){return t.mouseMoved(e)}),this.svg.on(\"click\",function(e){return alert(\"This original index of the sample you clicked is \"+t.nearestExpIndex)}),this.svg.on(\"mouseout\",function(e){return t.mouseOut(e)}),window.addEventListener(\"resize\",this.redraw),window.setTimeout(this.redraw,50)}},{key:\"componentDidUpdate\",value:function(){this.draw()}},{key:\"mouseOut\",value:function(){this.hoverLine.attr(\"display\",\"none\"),this.hoverx.attr(\"display\",\"none\"),this.hoverxOutline.attr(\"display\",\"none\"),this.hoverxTitle.attr(\"display\",\"none\"),this.hovery.attr(\"display\",\"none\"),this.hoveryOutline.attr(\"display\",\"none\"),this.hoverGroup1.attr(\"display\",\"none\"),this.hoverGroup2.attr(\"display\",\"none\")}},{key:\"mouseMoved\",value:function(t){var e=this,n=void 0,r=void 0;this.hoverLine.attr(\"display\",\"\"),this.hoverx.attr(\"display\",\"\"),this.hoverxOutline.attr(\"display\",\"\"),this.hoverxTitle.attr(\"display\",\"\"),this.hovery.attr(\"display\",\"\"),this.hoveryOutline.attr(\"display\",\"\"),this.hoverGroup1.attr(\"display\",\"\"),this.hoverGroup2.attr(\"display\",\"\");var i=(0,f.mouse)(this.svg.node())[0];if(this.props.explanations){for(n=0;n<this.props.explanations.length;++n)(!r||Math.abs(r.xmapScaled-i)>Math.abs(this.props.explanations[n].xmapScaled-i))&&(r=this.props.explanations[n],this.nearestExpIndex=n);this.hoverLine.attr(\"x1\",r.xmapScaled).attr(\"x2\",r.xmapScaled).attr(\"y1\",0+this.topOffset).attr(\"y2\",this.height),this.hoverx.attr(\"x\",r.xmapScaled).attr(\"y\",this.topOffset-5).text(this.xtickFormat(r.xmap)),this.hoverxOutline.attr(\"x\",r.xmapScaled).attr(\"y\",this.topOffset-5).text(this.xtickFormat(r.xmap)),this.hoverxTitle.attr(\"x\",r.xmapScaled).attr(\"y\",this.topOffset-18).text(r.count>1?r.count+\" averaged samples\":\"\"),this.hovery.attr(\"x\",this.leftOffset-6).attr(\"y\",r.joinPointy).text(this.ytickFormat(this.invLinkFunction(r.joinPoint))),this.hoveryOutline.attr(\"x\",this.leftOffset-6).attr(\"y\",r.joinPointy).text(this.ytickFormat(this.invLinkFunction(r.joinPoint)));for(var o=(this.props.featureNames.length,[]),a=void 0,u=void 0,c=this.currPosOrderedFeatures.length-1;c>=0;--c){var s=this.currPosOrderedFeatures[c],l=r.features[s];u=5+(l.posyTop+l.posyBottom)/2,(!a||u-a>=15)&&l.posyTop-l.posyBottom>=6&&(o.push(l),a=u)}var p=[];a=void 0;var h=!0,d=!1,v=void 0;try{for(var g,m=this.currNegOrderedFeatures[Symbol.iterator]();!(h=(g=m.next()).done);h=!0){var y=g.value,_=r.features[y];u=5+(_.negyTop+_.negyBottom)/2,(!a||a-u>=15)&&_.negyTop-_.negyBottom>=6&&(p.push(_),a=u)}}catch(t){d=!0,v=t}finally{try{!h&&m.return&&m.return()}finally{if(d)throw v}}var b=function(t){var n=\"\";return null!==t.value&&void 0!==t.value&&(n=\" = \"+(isNaN(t.value)?t.value:e.ytickFormat(t.value))),r.count>1?\"mean(\"+e.props.featureNames[t.ind]+\")\"+n:e.props.featureNames[t.ind]+n},x=this.hoverGroup1.selectAll(\".pos-values\").data(o);x.enter().append(\"text\").attr(\"class\",\"pos-values\").merge(x).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.posyTop+t.posyBottom)/2}).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"stroke\",\"#fff\").attr(\"fill\",\"#fff\").attr(\"stroke-width\",\"4\").attr(\"stroke-linejoin\",\"round\").attr(\"opacity\",1).text(b),x.exit().remove();var w=this.hoverGroup2.selectAll(\".pos-values\").data(o);w.enter().append(\"text\").attr(\"class\",\"pos-values\").merge(w).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.posyTop+t.posyBottom)/2}).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"fill\",this.colors[0]).text(b),w.exit().remove();var C=this.hoverGroup1.selectAll(\".neg-values\").data(p);C.enter().append(\"text\").attr(\"class\",\"neg-values\").merge(C).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.negyTop+t.negyBottom)/2}).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"stroke\",\"#fff\").attr(\"fill\",\"#fff\").attr(\"stroke-width\",\"4\").attr(\"stroke-linejoin\",\"round\").attr(\"opacity\",1).text(b),C.exit().remove();var k=this.hoverGroup2.selectAll(\".neg-values\").data(p);k.enter().append(\"text\").attr(\"class\",\"neg-values\").merge(k).attr(\"x\",r.xmapScaled+5).attr(\"y\",function(t){return 4+(t.negyTop+t.negyBottom)/2}).attr(\"text-anchor\",\"start\").attr(\"font-size\",12).attr(\"fill\",this.colors[1]).text(b),k.exit().remove()}}},{key:\"draw\",value:function(){var t=this;if(this.props.explanations&&0!==this.props.explanations.length){(0,y.each)(this.props.explanations,function(t,e){return t.origInd=e});var e={},n={},r={},i=!0,o=!1,a=void 0;try{for(var u,c=this.props.explanations[Symbol.iterator]();!(i=(u=c.next()).done);i=!0){var s=u.value;for(var l in s.features)void 0===e[l]&&(e[l]=0,n[l]=0,r[l]=0),s.features[l].effect>0?e[l]+=s.features[l].effect:n[l]-=s.features[l].effect,null!==s.features[l].value&&void 0!==s.features[l].value&&(r[l]+=1)}}catch(t){o=!0,a=t}finally{try{!i&&c.return&&c.return()}finally{if(o)throw a}}this.usedFeatures=(0,y.sortBy)((0,y.keys)(e),function(t){return-(e[t]+n[t])}),console.log(\"found \",this.usedFeatures.length,\" used features\"),this.posOrderedFeatures=(0,y.sortBy)(this.usedFeatures,function(t){return e[t]}),this.negOrderedFeatures=(0,y.sortBy)(this.usedFeatures,function(t){return-n[t]}),this.singleValueFeatures=(0,y.filter)(this.usedFeatures,function(t){return r[t]>0});var f=[\"sample order by similarity\",\"sample order by output value\",\"original sample ordering\"].concat(this.singleValueFeatures.map(function(e){return t.props.featureNames[e]}));null!=this.props.ordering_keys&&f.unshift(\"sample order by key\");var p=this.xlabel.selectAll(\"option\").data(f);p.enter().append(\"option\").merge(p).attr(\"value\",function(t){return t}).text(function(t){return t}),p.exit().remove();var h=this.props.outNames[0]?this.props.outNames[0]:\"model output value\";f=(0,y.map)(this.usedFeatures,function(e){return[t.props.featureNames[e],t.props.featureNames[e]+\" effects\"]}),f.unshift([\"model output value\",h]);var d=this.ylabel.selectAll(\"option\").data(f);d.enter().append(\"option\").merge(d).attr(\"value\",function(t){return t[0]}).text(function(t){return t[1]}),d.exit().remove(),this.ylabel.style(\"top\",(this.height-10-this.topOffset)/2+this.topOffset+\"px\").style(\"left\",10-this.ylabel.node().offsetWidth/2+\"px\"),this.internalDraw()}}},{key:\"internalDraw\",value:function(){var t=this,e=!0,n=!1,r=void 0;try{for(var i,o=this.props.explanations[Symbol.iterator]();!(e=(i=o.next()).done);e=!0){var a=i.value,u=!0,c=!1,s=void 0;try{for(var l,f=this.usedFeatures[Symbol.iterator]();!(u=(l=f.next()).done);u=!0){var h=l.value;a.features.hasOwnProperty(h)||(a.features[h]={effect:0,value:0}),a.features[h].ind=h}}catch(t){c=!0,s=t}finally{try{!u&&f.return&&f.return()}finally{if(c)throw s}}}}catch(t){n=!0,r=t}finally{try{!e&&o.return&&o.return()}finally{if(n)throw r}}var d=void 0,v=this.xlabel.node().value,m=\"sample order by key\"===v&&null!=this.props.ordering_keys_time_format;if(this.xscale=m?(0,p.scaleTime)():(0,p.scaleLinear)(),this.xaxis.scale(this.xscale),\"sample order by similarity\"===v)d=(0,y.sortBy)(this.props.explanations,function(t){return t.simIndex}),(0,y.each)(d,function(t,e){return t.xmap=e});else if(\"sample order by output value\"===v)d=(0,y.sortBy)(this.props.explanations,function(t){return-t.outValue}),(0,y.each)(d,function(t,e){return t.xmap=e});else if(\"original sample ordering\"===v)d=(0,y.sortBy)(this.props.explanations,function(t){return t.origInd}),(0,y.each)(d,function(t,e){return t.xmap=e});else if(\"sample order by key\"===v)d=this.props.explanations,m?(0,y.each)(d,function(e,n){return e.xmap=t.parseTime(t.props.ordering_keys[n])}):(0,y.each)(d,function(e,n){return e.xmap=t.props.ordering_keys[n]}),d=(0,y.sortBy)(d,function(t){return t.xmap});else{var _=(0,y.findKey)(this.props.featureNames,function(t){return t===v});(0,y.each)(this.props.explanations,function(t,e){return t.xmap=t.features[_].value});var b=(0,y.sortBy)(this.props.explanations,function(t){return t.xmap}),x=(0,y.map)(b,function(t){return t.xmap});if(\"string\"==typeof x[0])return void alert(\"Ordering by category names is not yet supported.\");var w=(0,y.min)(x),C=(0,y.max)(x),k=(C-w)/100;d=[];for(var E=void 0,M=void 0,T=0;T<b.length;++T){var S=b[T];if(E&&!M&&S.xmap-E.xmap<=k||M&&S.xmap-M.xmap<=k){M||(M=(0,y.cloneDeep)(E),M.count=1);var N=!0,A=!1,P=void 0;try{for(var O,I=this.usedFeatures[Symbol.iterator]();!(N=(O=I.next()).done);N=!0){var D=O.value;M.features[D].effect+=S.features[D].effect,M.features[D].value+=S.features[D].value}}catch(t){A=!0,P=t}finally{try{!N&&I.return&&I.return()}finally{if(A)throw P}}M.count+=1}else if(E)if(M){var R=!0,L=!1,U=void 0;try{for(var F,j=this.usedFeatures[Symbol.iterator]();!(R=(F=j.next()).done);R=!0){var B=F.value;M.features[B].effect/=M.count,M.features[B].value/=M.count}}catch(t){L=!0,U=t}finally{try{!R&&j.return&&j.return()}finally{if(L)throw U}}d.push(M),M=void 0}else d.push(E);E=S}E.xmap-d[d.length-1].xmap>k&&d.push(E)}this.currUsedFeatures=this.usedFeatures,this.currPosOrderedFeatures=this.posOrderedFeatures,this.currNegOrderedFeatures=this.negOrderedFeatures;var V=this.ylabel.node().value;if(\"model output value\"!==V){d=(0,y.cloneDeep)(d);for(var W=(0,y.findKey)(this.props.featureNames,function(t){return t===V}),z=0;z<d.length;++z){var H=d[z].features[W];d[z].features={},d[z].features[W]=H}this.currUsedFeatures=[W],this.currPosOrderedFeatures=[W],this.currNegOrderedFeatures=[W]}this.currExplanations=d,\"identity\"===this.props.link?this.invLinkFunction=function(e){return t.props.baseValue+e}:\"logit\"===this.props.link?this.invLinkFunction=function(e){return 1/(1+Math.exp(-(t.props.baseValue+e)))}:console.log(\"ERROR: Unrecognized link function: \",this.props.link),this.predValues=(0,y.map)(d,function(t){return(0,y.sum)((0,y.map)(t.features,function(t){return t.effect}))});var q=this.wrapper.node().offsetWidth;if(0==q)return setTimeout(function(){return t.draw(d)},500);this.svg.style(\"height\",this.height+\"px\"),this.svg.style(\"width\",q+\"px\");var Y=(0,y.map)(d,function(t){return t.xmap});this.xscale.domain([(0,y.min)(Y),(0,y.max)(Y)]).range([this.leftOffset,q]).clamp(!0),this.xaxisElement.attr(\"transform\",\"translate(0,\"+this.topOffset+\")\").call(this.xaxis);for(var K=0;K<this.currExplanations.length;++K)this.currExplanations[K].xmapScaled=this.xscale(this.currExplanations[K].xmap);for(var G=d.length,$=0,X=0;X<G;++X){var Q=d[X].features,Z=(0,y.sum)((0,y.map)((0,y.filter)(Q,function(t){return t.effect>0}),function(t){return t.effect}))||0,J=(0,y.sum)((0,y.map)((0,y.filter)(Q,function(t){return t.effect<0}),function(t){return-t.effect}))||0;$=Math.max($,2.2*Math.max(Z,J))}this.yscale.domain([-$/2,$/2]).range([this.height-10,this.topOffset]),this.yaxisElement.attr(\"transform\",\"translate(\"+this.leftOffset+\",0)\").call(this.yaxis);for(var tt=0;tt<G;++tt){var et=d[tt].features,nt=((0,y.sum)((0,y.map)(et,function(t){return Math.abs(t.effect)})),(0,y.sum)((0,y.map)((0,y.filter)(et,function(t){return t.effect<0}),function(t){return-t.effect}))||0),rt=-nt,it=void 0,ot=!0,at=!1,ut=void 0;try{for(var ct,st=this.currPosOrderedFeatures[Symbol.iterator]();!(ot=(ct=st.next()).done);ot=!0)it=ct.value,et[it].posyTop=this.yscale(rt),et[it].effect>0&&(rt+=et[it].effect),et[it].posyBottom=this.yscale(rt),et[it].ind=it}catch(t){at=!0,ut=t}finally{try{!ot&&st.return&&st.return()}finally{if(at)throw ut}}var lt=rt,ft=!0,pt=!1,ht=void 0;try{for(var dt,vt=this.currNegOrderedFeatures[Symbol.iterator]();!(ft=(dt=vt.next()).done);ft=!0)it=dt.value,et[it].negyTop=this.yscale(rt),et[it].effect<0&&(rt-=et[it].effect),et[it].negyBottom=this.yscale(rt)}catch(t){pt=!0,ht=t}finally{try{!ft&&vt.return&&vt.return()}finally{if(pt)throw ht}}d[tt].joinPoint=lt,d[tt].joinPointy=this.yscale(lt)}var gt=(0,g.line)().x(function(t){return t[0]}).y(function(t){return t[1]}),mt=this.mainGroup.selectAll(\".force-bar-array-area-pos\").data(this.currUsedFeatures);mt.enter().append(\"path\").attr(\"class\",\"force-bar-array-area-pos\").merge(mt).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].posyTop]}),n=(0,y.map)((0,y.rangeRight)(G),function(e){return[d[e].xmapScaled,d[e].features[t].posyBottom]});return gt(e.concat(n))}).attr(\"fill\",this.colors[0]),mt.exit().remove();var yt=this.mainGroup.selectAll(\".force-bar-array-area-neg\").data(this.currUsedFeatures);yt.enter().append(\"path\").attr(\"class\",\"force-bar-array-area-neg\").merge(yt).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].negyTop]}),n=(0,y.map)((0,y.rangeRight)(G),function(e){return[d[e].xmapScaled,d[e].features[t].negyBottom]});return gt(e.concat(n))}).attr(\"fill\",this.colors[1]),yt.exit().remove();var _t=this.mainGroup.selectAll(\".force-bar-array-divider-pos\").data(this.currUsedFeatures);_t.enter().append(\"path\").attr(\"class\",\"force-bar-array-divider-pos\").merge(_t).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].posyBottom]});return gt(e)}).attr(\"fill\",\"none\").attr(\"stroke-width\",1).attr(\"stroke\",function(e){return t.colors[0].brighter(1.2)}),_t.exit().remove();var bt=this.mainGroup.selectAll(\".force-bar-array-divider-neg\").data(this.currUsedFeatures);bt.enter().append(\"path\").attr(\"class\",\"force-bar-array-divider-neg\").merge(bt).attr(\"d\",function(t){var e=(0,y.map)((0,y.range)(G),function(e){return[d[e].xmapScaled,d[e].features[t].negyTop]});return gt(e)}).attr(\"fill\",\"none\").attr(\"stroke-width\",1).attr(\"stroke\",function(e){return t.colors[1].brighter(1.5)}),bt.exit().remove();for(var xt=function(t,e,n,r,i){var o=void 0,a=void 0;\"pos\"===i?(o=t[n].features[e].posyBottom,a=t[n].features[e].posyTop):(o=t[n].features[e].negyBottom,a=t[n].features[e].negyTop);for(var u=void 0,c=void 0,s=n+1;s<=r;++s)\"pos\"===i?(u=t[s].features[e].posyBottom,c=t[s].features[e].posyTop):(u=t[s].features[e].negyBottom,c=t[s].features[e].negyTop),u>o&&(o=u),c<a&&(a=c);return{top:o,bottom:a}},wt=[],Ct=[\"pos\",\"neg\"],kt=0;kt<Ct.length;kt++){var Et=Ct[kt],Mt=!0,Tt=!1,St=void 0;try{for(var Nt,At=this.currUsedFeatures[Symbol.iterator]();!(Mt=(Nt=At.next()).done);Mt=!0)for(var Pt=Nt.value,Ot=0,It=0,Dt=0,Rt={top:0,bottom:0},Lt=void 0;It<G-1;){for(;Dt<100&&It<G-1;)++It,Dt=d[It].xmapScaled-d[Ot].xmapScaled;for(Rt=xt(d,Pt,Ot,It,Et);Rt.bottom-Rt.top<20&&Ot<It;)++Ot,Rt=xt(d,Pt,Ot,It,Et);if(Dt=d[It].xmapScaled-d[Ot].xmapScaled,Rt.bottom-Rt.top>=20&&Dt>=100){for(;It<G-1;){if(++It,Lt=xt(d,Pt,Ot,It,Et),!(Lt.bottom-Lt.top>20)){--It;break}Rt=Lt}Dt=d[It].xmapScaled-d[Ot].xmapScaled,wt.push([(d[It].xmapScaled+d[Ot].xmapScaled)/2,(Rt.top+Rt.bottom)/2,this.props.featureNames[Pt]]);var Ut=d[It].xmapScaled;for(Ot=It;Ut+100>d[Ot].xmapScaled&&Ot<G-1;)++Ot;It=Ot}}}catch(t){Tt=!0,St=t}finally{try{!Mt&&At.return&&At.return()}finally{if(Tt)throw St}}}var Ft=this.onTopGroup.selectAll(\".force-bar-array-flabels\").data(wt);Ft.enter().append(\"text\").attr(\"class\",\"force-bar-array-flabels\").merge(Ft).attr(\"x\",function(t){return t[0]}).attr(\"y\",function(t){return t[1]+4}).text(function(t){return t[2]}),Ft.exit().remove()}},{key:\"componentWillUnmount\",value:function(){window.removeEventListener(\"resize\",this.redraw)}},{key:\"render\",value:function(){var t=this;return l.default.createElement(\"div\",{ref:function(e){return t.wrapper=(0,f.select)(e)},style:{textAlign:\"center\"}},l.default.createElement(\"style\",{dangerouslySetInnerHTML:{__html:\"\\n          .force-bar-array-wrapper {\\n            text-align: center;\\n          }\\n          .force-bar-array-xaxis path {\\n            fill: none;\\n            opacity: 0.4;\\n          }\\n          .force-bar-array-xaxis .domain {\\n            opacity: 0;\\n          }\\n          .force-bar-array-xaxis paths {\\n            display: none;\\n          }\\n          .force-bar-array-yaxis path {\\n            fill: none;\\n            opacity: 0.4;\\n          }\\n          .force-bar-array-yaxis paths {\\n            display: none;\\n          }\\n          .tick line {\\n            stroke: #000;\\n            stroke-width: 1px;\\n            opacity: 0.4;\\n          }\\n          .tick text {\\n            fill: #000;\\n            opacity: 0.5;\\n            font-size: 12px;\\n            padding: 0px;\\n          }\\n          .force-bar-array-flabels {\\n            font-size: 12px;\\n            fill: #fff;\\n            text-anchor: middle;\\n          }\\n          .additive-force-array-xlabel {\\n            background: none;\\n            border: 1px solid #ccc;\\n            opacity: 0.5;\\n            margin-bottom: 0px;\\n            font-size: 12px;\\n            font-family: arial;\\n            margin-left: 80px;\\n            max-width: 300px;\\n          }\\n          .additive-force-array-xlabel:focus {\\n            outline: none;\\n          }\\n          .additive-force-array-ylabel {\\n            position: relative;\\n            top: 0px;\\n            left: 0px;\\n            transform: rotate(-90deg);\\n            background: none;\\n            border: 1px solid #ccc;\\n            opacity: 0.5;\\n            margin-bottom: 0px;\\n            font-size: 12px;\\n            font-family: arial;\\n            max-width: 150px;\\n          }\\n          .additive-force-array-ylabel:focus {\\n            outline: none;\\n          }\\n          .additive-force-array-hoverLine {\\n            stroke-width: 1px;\\n            stroke: #fff;\\n            opacity: 1;\\n          }\"}}),l.default.createElement(\"select\",{className:\"additive-force-array-xlabel\"}),l.default.createElement(\"div\",{style:{height:\"0px\",textAlign:\"left\"}},l.default.createElement(\"select\",{className:\"additive-force-array-ylabel\"})),l.default.createElement(\"svg\",{ref:function(e){return t.svg=(0,f.select)(e)},style:{userSelect:\"none\",display:\"block\",fontFamily:\"arial\",sansSerif:!0}}))}}]),e}(l.default.Component);x.defaultProps={plot_cmap:\"RdBu\",ordering_keys:null,ordering_keys_time_format:null},e.default=x},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(41),s=r(c),l=n(129),f=n(66),p=(n(7),n(29)),h=n(112),d=n(136),v=n(10),g=n(38),m=n(58),y=r(m),b=function(t){function e(){i(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return window.lastAdditiveForceVisualizer=t,t.effectFormat=(0,p.format)(\".2\"),t.redraw=(0,g.debounce)(function(){return t.draw()},200),t}return a(e,t),u(e,[{key:\"componentDidMount\",value:function(){var t=this;this.mainGroup=this.svg.append(\"g\"),this.axisElement=this.mainGroup.append(\"g\").attr(\"transform\",\"translate(0,35)\").attr(\"class\",\"force-bar-axis\"),this.onTopGroup=this.svg.append(\"g\"),this.baseValueTitle=this.svg.append(\"text\"),this.joinPointLine=this.svg.append(\"line\"),this.joinPointLabelOutline=this.svg.append(\"text\"),this.joinPointLabel=this.svg.append(\"text\"),this.joinPointTitleLeft=this.svg.append(\"text\"),this.joinPointTitleLeftArrow=this.svg.append(\"text\"),this.joinPointTitle=this.svg.append(\"text\"),this.joinPointTitleRightArrow=this.svg.append(\"text\"),this.joinPointTitleRight=this.svg.append(\"text\"),this.hoverLabelBacking=this.svg.append(\"text\").attr(\"x\",10).attr(\"y\",20).attr(\"text-anchor\",\"middle\").attr(\"font-size\",12).attr(\"stroke\",\"#fff\").attr(\"fill\",\"#fff\").attr(\"stroke-width\",\"4\").attr(\"stroke-linejoin\",\"round\").text(\"\").on(\"mouseover\",function(e){t.hoverLabel.attr(\"opacity\",1),t.hoverLabelBacking.attr(\"opacity\",1)}).on(\"mouseout\",function(e){t.hoverLabel.attr(\"opacity\",0),t.hoverLabelBacking.attr(\"opacity\",0)}),this.hoverLabel=this.svg.append(\"text\").attr(\"x\",10).attr(\"y\",20).attr(\"text-anchor\",\"middle\").attr(\"font-size\",12).attr(\"fill\",\"#0f0\").text(\"\").on(\"mouseover\",function(e){t.hoverLabel.attr(\"opacity\",1),t.hoverLabelBacking.attr(\"opacity\",1)}).on(\"mouseout\",function(e){t.hoverLabel.attr(\"opacity\",0),t.hoverLabelBacking.attr(\"opacity\",0)});var e=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in y.default.colors?e=y.default.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),e=y.default.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(e=this.props.plot_cmap),this.colors=e.map(function(t){return(0,v.hsl)(t)}),this.brighterColors=[1.45,1.6].map(function(e,n){return t.colors[n].brighter(e)}),this.colors.map(function(e,n){var r=t.svg.append(\"linearGradient\").attr(\"id\",\"linear-grad-\"+n).attr(\"x1\",\"0%\").attr(\"y1\",\"0%\").attr(\"x2\",\"0%\").attr(\"y2\",\"100%\");r.append(\"stop\").attr(\"offset\",\"0%\").attr(\"stop-color\",e).attr(\"stop-opacity\",.6),r.append(\"stop\").attr(\"offset\",\"100%\").attr(\"stop-color\",e).attr(\"stop-opacity\",0);var i=t.svg.append(\"linearGradient\").attr(\"id\",\"linear-backgrad-\"+n).attr(\"x1\",\"0%\").attr(\"y1\",\"0%\").attr(\"x2\",\"0%\").attr(\"y2\",\"100%\");i.append(\"stop\").attr(\"offset\",\"0%\").attr(\"stop-color\",e).attr(\"stop-opacity\",.5),i.append(\"stop\").attr(\"offset\",\"100%\").attr(\"stop-color\",e).attr(\"stop-opacity\",0)}),this.tickFormat=(0,p.format)(\",.4\"),this.scaleCentered=(0,f.scaleLinear)(),this.axis=(0,h.axisBottom)().scale(this.scaleCentered).tickSizeInner(4).tickSizeOuter(0).tickFormat(function(e){return t.tickFormat(t.invLinkFunction(e))}).tickPadding(-18),window.addEventListener(\"resize\",this.redraw),window.setTimeout(this.redraw,50)}},{key:\"componentDidUpdate\",value:function(){this.draw()}},{key:\"draw\",value:function(){var t=this;(0,g.each)(this.props.featureNames,function(e,n){t.props.features[n]&&(t.props.features[n].name=e)}),\"identity\"===this.props.link?this.invLinkFunction=function(e){return t.props.baseValue+e}:\"logit\"===this.props.link?this.invLinkFunction=function(e){return 1/(1+Math.exp(-(t.props.baseValue+e)))}:console.log(\"ERROR: Unrecognized link function: \",this.props.link);var e=this.svg.node().parentNode.offsetWidth;if(0==e)return setTimeout(function(){return t.draw(t.props)},500);this.svg.style(\"height\",\"150px\"),this.svg.style(\"width\",e+\"px\");var n=(0,g.sortBy)(this.props.features,function(t){return-1/(t.effect+1e-10)}),r=(0,g.sum)((0,g.map)(n,function(t){return Math.abs(t.effect)})),i=(0,g.sum)((0,g.map)((0,g.filter)(n,function(t){return t.effect>0}),function(t){return t.effect}))||0,o=(0,g.sum)((0,g.map)((0,g.filter)(n,function(t){return t.effect<0}),function(t){return-t.effect}))||0;this.domainSize=3*Math.max(i,o);var a=(0,f.scaleLinear)().domain([0,this.domainSize]).range([0,e]),u=e/2-a(o);this.scaleCentered.domain([-this.domainSize/2,this.domainSize/2]).range([0,e]).clamp(!0),this.axisElement.attr(\"transform\",\"translate(0,50)\").call(this.axis);var c=0,s=void 0,l=void 0,h=void 0;for(s=0;s<n.length;++s)n[s].x=c,n[s].effect<0&&void 0===l&&(l=c,h=s),c+=Math.abs(n[s].effect);void 0===l&&(l=c,h=s);var v=(0,d.line)().x(function(t){return t[0]}).y(function(t){return t[1]}),m=function(e){return void 0!==e.value&&null!==e.value&&\"\"!==e.value?e.name+\" = \"+(isNaN(e.value)?e.value:t.tickFormat(e.value)):e.name};n=this.props.hideBars?[]:n;var y=this.mainGroup.selectAll(\".force-bar-blocks\").data(n);y.enter().append(\"path\").attr(\"class\",\"force-bar-blocks\").merge(y).attr(\"d\",function(t,e){var n=a(t.x)+u,r=a(Math.abs(t.effect)),i=t.effect<0?-4:4,o=i;return e===h&&(i=0),e===h-1&&(o=0),v([[n,56],[n+r,56],[n+r+o,64.5],[n+r,73],[n,73],[n+i,64.5]])}).attr(\"fill\",function(e){return e.effect>0?t.colors[0]:t.colors[1]}).on(\"mouseover\",function(e){if(a(Math.abs(e.effect))<a(r)/50||a(Math.abs(e.effect))<10){var n=a(e.x)+u,i=a(Math.abs(e.effect));t.hoverLabel.attr(\"opacity\",1).attr(\"x\",n+i/2).attr(\"y\",50.5).attr(\"fill\",e.effect>0?t.colors[0]:t.colors[1]).text(m(e)),t.hoverLabelBacking.attr(\"opacity\",1).attr(\"x\",n+i/2).attr(\"y\",50.5).text(m(e))}}).on(\"mouseout\",function(e){t.hoverLabel.attr(\"opacity\",0),t.hoverLabelBacking.attr(\"opacity\",0)}),y.exit().remove();var b=_.filter(n,function(t){return a(Math.abs(t.effect))>a(r)/50&&a(Math.abs(t.effect))>10}),x=this.onTopGroup.selectAll(\".force-bar-labels\").data(b);if(x.exit().remove(),x=x.enter().append(\"text\").attr(\"class\",\"force-bar-labels\").attr(\"font-size\",\"12px\").attr(\"y\",function(t){return 98}).merge(x).text(function(e){return void 0!==e.value&&null!==e.value&&\"\"!==e.value?e.name+\" = \"+(isNaN(e.value)?e.value:t.tickFormat(e.value)):e.name}).attr(\"fill\",function(e){return e.effect>0?t.colors[0]:t.colors[1]}).attr(\"stroke\",function(t,e){return t.textWidth=Math.max(this.getComputedTextLength(),a(Math.abs(t.effect))-10),t.innerTextWidth=this.getComputedTextLength(),\"none\"}),this.filteredData=b,n.length>0){c=l+a.invert(5);for(var w=h;w<n.length;++w)n[w].textx=c,c+=a.invert(n[w].textWidth+10);c=l-a.invert(5);for(var C=h-1;C>=0;--C)n[C].textx=c,c-=a.invert(n[C].textWidth+10)}x.attr(\"x\",function(t){return a(t.textx)+u+(t.effect>0?-t.textWidth/2:t.textWidth/2)}).attr(\"text-anchor\",\"middle\"),b=(0,g.filter)(b,function(n){return a(n.textx)+u>t.props.labelMargin&&a(n.textx)+u<e-t.props.labelMargin}),this.filteredData2=b;var k=b.slice(),E=(0,g.findIndex)(n,b[0])-1;E>=0&&k.unshift(n[E]);var M=this.mainGroup.selectAll(\".force-bar-labelBacking\").data(b);M.enter().append(\"path\").attr(\"class\",\"force-bar-labelBacking\").attr(\"stroke\",\"none\").attr(\"opacity\",.2).merge(M).attr(\"d\",function(t){return v([[a(t.x)+a(Math.abs(t.effect))+u,73],[(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+5,83],[(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+5,104],[(t.effect>0?a(t.textx)-t.textWidth:a(t.textx))+u-5,104],[(t.effect>0?a(t.textx)-t.textWidth:a(t.textx))+u-5,83],[a(t.x)+u,73]])}).attr(\"fill\",function(t){return\"url(#linear-backgrad-\"+(t.effect>0?0:1)+\")\"}),M.exit().remove();var T=this.mainGroup.selectAll(\".force-bar-labelDividers\").data(b.slice(0,-1));T.enter().append(\"rect\").attr(\"class\",\"force-bar-labelDividers\").attr(\"height\",\"21px\").attr(\"width\",\"1px\").attr(\"y\",83).merge(T).attr(\"x\",function(t){return(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+4.5}).attr(\"fill\",function(t){return\"url(#linear-grad-\"+(t.effect>0?0:1)+\")\"}),T.exit().remove();var S=this.mainGroup.selectAll(\".force-bar-labelLinks\").data(b.slice(0,-1));S.enter().append(\"line\").attr(\"class\",\"force-bar-labelLinks\").attr(\"y1\",73).attr(\"y2\",83).attr(\"stroke-opacity\",.5).attr(\"stroke-width\",1).merge(S).attr(\"x1\",function(t){return a(t.x)+a(Math.abs(t.effect))+u}).attr(\"x2\",function(t){return(t.effect>0?a(t.textx):a(t.textx)+t.textWidth)+u+5}).attr(\"stroke\",function(e){return e.effect>0?t.colors[0]:t.colors[1]}),S.exit().remove();var N=this.mainGroup.selectAll(\".force-bar-blockDividers\").data(n.slice(0,-1));N.enter().append(\"path\").attr(\"class\",\"force-bar-blockDividers\").attr(\"stroke-width\",2).attr(\"fill\",\"none\").merge(N).attr(\"d\",function(t){var e=a(t.x)+a(Math.abs(t.effect))+u;return v([[e,56],[e+(t.effect<0?-4:4),64.5],[e,73]])}).attr(\"stroke\",function(e,n){return h===n+1||Math.abs(e.effect)<1e-8?\"#rgba(0,0,0,0)\":e.effect>0?t.brighterColors[0]:t.brighterColors[1]}),N.exit().remove(),this.joinPointLine.attr(\"x1\",a(l)+u).attr(\"x2\",a(l)+u).attr(\"y1\",50).attr(\"y2\",56).attr(\"stroke\",\"#F2F2F2\").attr(\"stroke-width\",1).attr(\"opacity\",1),this.joinPointLabelOutline.attr(\"x\",a(l)+u).attr(\"y\",45).attr(\"color\",\"#fff\").attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"stroke\",\"#fff\").attr(\"stroke-width\",6).text((0,p.format)(\",.2f\")(this.invLinkFunction(l-o))).attr(\"opacity\",1),console.log(\"joinPoint\",l,u,50,o),this.joinPointLabel.attr(\"x\",a(l)+u).attr(\"y\",45).attr(\"text-anchor\",\"middle\").attr(\"font-weight\",\"bold\").attr(\"fill\",\"#000\").text((0,p.format)(\",.2f\")(this.invLinkFunction(l-o))).attr(\"opacity\",1),this.joinPointTitle.attr(\"x\",a(l)+u).attr(\"y\",28).attr(\"text-anchor\",\"middle\").attr(\"font-size\",\"12\").attr(\"fill\",\"#000\").text(this.props.outNames[0]).attr(\"opacity\",.5),this.props.hideBars||(this.joinPointTitleLeft.attr(\"x\",a(l)+u-16).attr(\"y\",12).attr(\"text-anchor\",\"end\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[0]).text(\"higher\").attr(\"opacity\",1),this.joinPointTitleRight.attr(\"x\",a(l)+u+16).attr(\"y\",12).attr(\"text-anchor\",\"start\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[1]).text(\"lower\").attr(\"opacity\",1),this.joinPointTitleLeftArrow.attr(\"x\",a(l)+u+7).attr(\"y\",8).attr(\"text-anchor\",\"end\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[0]).text(\"→\").attr(\"opacity\",1),this.joinPointTitleRightArrow.attr(\"x\",a(l)+u-7).attr(\"y\",14).attr(\"text-anchor\",\"start\").attr(\"font-size\",\"13\").attr(\"fill\",this.colors[1]).text(\"←\").attr(\"opacity\",1)),this.props.hideBaseValueLabel||this.baseValueTitle.attr(\"x\",this.scaleCentered(0)).attr(\"y\",28).attr(\"text-anchor\",\"middle\").attr(\"font-size\",\"12\").attr(\"fill\",\"#000\").text(\"base value\").attr(\"opacity\",.5)}},{key:\"componentWillUnmount\",value:function(){window.removeEventListener(\"resize\",this.redraw)}},{key:\"render\",value:function(){var t=this;return s.default.createElement(\"svg\",{ref:function(e){return t.svg=(0,l.select)(e)},style:{userSelect:\"none\",display:\"block\",fontFamily:\"arial\",sansSerif:!0}},s.default.createElement(\"style\",{dangerouslySetInnerHTML:{__html:\"\\n          .force-bar-axis path {\\n            fill: none;\\n            opacity: 0.4;\\n          }\\n          .force-bar-axis paths {\\n            display: none;\\n          }\\n          .tick line {\\n            stroke: #000;\\n            stroke-width: 1px;\\n            opacity: 0.4;\\n          }\\n          .tick text {\\n            fill: #000;\\n            opacity: 0.5;\\n            font-size: 12px;\\n            padding: 0px;\\n          }\"}}))}}]),e}(s.default.Component);b.defaultProps={plot_cmap:\"RdBu\"},e.default=b},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(41),s=r(c),l=n(66),f=(n(7),n(29)),p=n(38),h=n(58),d=r(h),v=function(t){function e(){i(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.width=100,window.lastSimpleListInstance=t,t.effectFormat=(0,f.format)(\".2\"),t}return a(e,t),u(e,[{key:\"render\",value:function(){var t=this,e=void 0;\"string\"==typeof this.props.plot_cmap?this.props.plot_cmap in d.default.colors?e=d.default.colors[this.props.plot_cmap]:(console.log(\"Invalid color map name, reverting to default.\"),e=d.default.colors.RdBu):Array.isArray(this.props.plot_cmap)&&(e=this.props.plot_cmap),console.log(this.props.features,this.props.features),this.scale=(0,l.scaleLinear)().domain([0,(0,p.max)((0,p.map)(this.props.features,function(t){return Math.abs(t.effect)}))]).range([0,this.width]);var n=(0,p.reverse)((0,p.sortBy)(Object.keys(this.props.features),function(e){return Math.abs(t.props.features[e].effect)})),r=n.map(function(n){var r=t.props.features[n],i=t.props.featureNames[n],o={width:t.scale(Math.abs(r.effect)),height:\"20px\",background:r.effect<0?e[0]:e[1],display:\"inline-block\"},a=void 0,u=void 0,c={lineHeight:\"20px\",display:\"inline-block\",width:t.width+40,verticalAlign:\"top\",marginRight:\"5px\",textAlign:\"right\"},l={lineHeight:\"20px\",display:\"inline-block\",width:t.width+40,verticalAlign:\"top\",marginLeft:\"5px\"};return r.effect<0?(u=s.default.createElement(\"span\",{style:l},i),c.width=40+t.width-t.scale(Math.abs(r.effect)),c.textAlign=\"right\",c.color=\"#999\",c.fontSize=\"13px\",a=s.default.createElement(\"span\",{style:c},t.effectFormat(r.effect))):(c.textAlign=\"right\",a=s.default.createElement(\"span\",{style:c},i),l.width=40,l.textAlign=\"left\",l.color=\"#999\",l.fontSize=\"13px\",u=s.default.createElement(\"span\",{style:l},t.effectFormat(r.effect))),s.default.createElement(\"div\",{key:n,style:{marginTop:\"2px\"}},a,s.default.createElement(\"div\",{style:o}),u)});return s.default.createElement(\"span\",null,r)}}]),e}(s.default.Component);v.defaultProps={plot_cmap:\"RdBu\"},e.default=v},function(t,e,n){\"use strict\";t.exports=n(359)},function(t,e,n){var r=(n(0),n(411)),i=!1;t.exports=function(t){t=t||{};var e=t.shouldRejectClick||r;i=!0,n(22).injection.injectEventPluginsByName({TapEventPlugin:n(409)(e)})}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}var i=n(41),o=r(i),a=n(187),u=r(a),c=n(188),s=r(c),l=n(186),f=r(l),p=n(185),h=r(p),d=n(184),v=r(d);(0,s.default)(),window.SHAP={SimpleListVisualizer:f.default,AdditiveForceVisualizer:h.default,AdditiveForceArrayVisualizer:v.default,React:o.default,ReactDom:u.default}},,function(t,e,n){\"use strict\";function r(t){return t}function i(t,e,n){function i(t,e){var n=y.hasOwnProperty(e)?y[e]:null;C.hasOwnProperty(e)&&u(\"OVERRIDE_BASE\"===n,\"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.\",e),t&&u(\"DEFINE_MANY\"===n||\"DEFINE_MANY_MERGED\"===n,\"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.\",e)}function s(t,n){if(n){u(\"function\"!=typeof n,\"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object.\"),u(!e(n),\"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.\");var r=t.prototype,o=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&b.mixins(t,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==c){var s=n[a],l=r.hasOwnProperty(a);if(i(l,a),b.hasOwnProperty(a))b[a](t,s);else{var f=y.hasOwnProperty(a),d=\"function\"==typeof s,v=d&&!f&&!l&&!1!==n.autobind;if(v)o.push(a,s),r[a]=s;else if(l){var g=y[a];u(f&&(\"DEFINE_MANY_MERGED\"===g||\"DEFINE_MANY\"===g),\"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.\",g,a),\"DEFINE_MANY_MERGED\"===g?r[a]=p(r[a],s):\"DEFINE_MANY\"===g&&(r[a]=h(r[a],s))}else r[a]=s}}}else;}function l(t,e){if(e)for(var n in e){var r=e[n];if(e.hasOwnProperty(n)){var i=n in b;u(!i,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var o=n in t;if(o){var a=_.hasOwnProperty(n)?_[n]:null;return u(\"DEFINE_MANY_MERGED\"===a,\"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.\",n),void(t[n]=p(t[n],r))}t[n]=r}}}function f(t,e){u(t&&e&&\"object\"==typeof t&&\"object\"==typeof e,\"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.\");for(var n in e)e.hasOwnProperty(n)&&(u(void 0===t[n],\"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.\",n),t[n]=e[n]);return t}function p(t,e){return function(){var n=t.apply(this,arguments),r=e.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return f(i,n),f(i,r),i}}function h(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function d(t,e){var n=e.bind(t);return n}function v(t){for(var e=t.__reactAutoBindPairs,n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t[r]=d(t,i)}}function g(t){var e=r(function(t,r,i){this.__reactAutoBindPairs.length&&v(this),this.props=t,this.context=r,this.refs=a,this.updater=i||n,this.state=null;var o=this.getInitialState?this.getInitialState():null;u(\"object\"==typeof o&&!Array.isArray(o),\"%s.getInitialState(): must return an object or null\",e.displayName||\"ReactCompositeComponent\"),this.state=o});e.prototype=new k,e.prototype.constructor=e,e.prototype.__reactAutoBindPairs=[],m.forEach(s.bind(null,e)),s(e,x),s(e,t),s(e,w),e.getDefaultProps&&(e.defaultProps=e.getDefaultProps()),u(e.prototype.render,\"createClass(...): Class specification must implement a `render` method.\");for(var i in y)e.prototype[i]||(e.prototype[i]=null);return e}var m=[],y={mixins:\"DEFINE_MANY\",statics:\"DEFINE_MANY\",propTypes:\"DEFINE_MANY\",contextTypes:\"DEFINE_MANY\",childContextTypes:\"DEFINE_MANY\",getDefaultProps:\"DEFINE_MANY_MERGED\",getInitialState:\"DEFINE_MANY_MERGED\",getChildContext:\"DEFINE_MANY_MERGED\",render:\"DEFINE_ONCE\",componentWillMount:\"DEFINE_MANY\",componentDidMount:\"DEFINE_MANY\",componentWillReceiveProps:\"DEFINE_MANY\",shouldComponentUpdate:\"DEFINE_ONCE\",componentWillUpdate:\"DEFINE_MANY\",componentDidUpdate:\"DEFINE_MANY\",componentWillUnmount:\"DEFINE_MANY\",UNSAFE_componentWillMount:\"DEFINE_MANY\",UNSAFE_componentWillReceiveProps:\"DEFINE_MANY\",UNSAFE_componentWillUpdate:\"DEFINE_MANY\",updateComponent:\"OVERRIDE_BASE\"},_={getDerivedStateFromProps:\"DEFINE_MANY_MERGED\"},b={displayName:function(t,e){t.displayName=e},mixins:function(t,e){if(e)for(var n=0;n<e.length;n++)s(t,e[n])},childContextTypes:function(t,e){t.childContextTypes=o({},t.childContextTypes,e)},contextTypes:function(t,e){t.contextTypes=o({},t.contextTypes,e)},getDefaultProps:function(t,e){t.getDefaultProps?t.getDefaultProps=p(t.getDefaultProps,e):t.getDefaultProps=e},propTypes:function(t,e){t.propTypes=o({},t.propTypes,e)},statics:function(t,e){l(t,e)},autobind:function(){}},x={componentDidMount:function(){this.__isMounted=!0}},w={componentWillUnmount:function(){this.__isMounted=!1}},C={replaceState:function(t,e){this.updater.enqueueReplaceState(this,t,e)},isMounted:function(){return!!this.__isMounted}},k=function(){};return o(k.prototype,t.prototype,C),g}var o=n(3),a=n(51),u=n(0),c=\"mixins\";t.exports=i},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(106);e.a=function(t,e,n){var i,o,a,u,c=t.length,s=e.length,l=new Array(c*s);for(null==n&&(n=r.b),i=a=0;i<c;++i)for(u=t[i],o=0;o<s;++o,++a)l[a]=n(u,e[o]);return l}},function(t,e,n){\"use strict\";e.a=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}},function(t,e,n){\"use strict\";var r=n(100),i=n(101),o=n(192),a=n(104),u=n(196),c=n(107),s=n(109),l=n(108);e.a=function(){function t(t){var r,o,a=t.length,u=new Array(a);for(r=0;r<a;++r)u[r]=e(t[r],r,t);var l=f(u),h=l[0],d=l[1],v=p(u,h,d);Array.isArray(v)||(v=n.i(s.c)(h,d,v),v=n.i(c.a)(Math.ceil(h/v)*v,Math.floor(d/v)*v,v));for(var g=v.length;v[0]<=h;)v.shift(),--g;for(;v[g-1]>d;)v.pop(),--g;var m,y=new Array(g+1);for(r=0;r<=g;++r)m=y[r]=[],m.x0=r>0?v[r-1]:h,m.x1=r<g?v[r]:d;for(r=0;r<a;++r)o=u[r],h<=o&&o<=d&&y[n.i(i.a)(v,o,0,g)].push(t[r]);return y}var e=u.a,f=a.a,p=l.a;return t.value=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(o.a)(r),t):e},t.domain=function(e){return arguments.length?(f=\"function\"==typeof e?e:n.i(o.a)([e[0],e[1]]),t):f},t.thresholds=function(e){return arguments.length?(p=\"function\"==typeof e?e:Array.isArray(e)?n.i(o.a)(r.b.call(e)):n.i(o.a)(e),t):p},t}},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r,i=t.length,o=-1;if(null==e){for(;++o<i;)if(null!=(n=t[o])&&n>=n)for(r=n;++o<i;)null!=(n=t[o])&&n>r&&(r=n)}else for(;++o<i;)if(null!=(n=e(t[o],o,t))&&n>=n)for(r=n;++o<i;)null!=(n=e(t[o],o,t))&&n>r&&(r=n);return r}},function(t,e,n){\"use strict\";var r=n(28);e.a=function(t,e){var i,o=t.length,a=o,u=-1,c=0;if(null==e)for(;++u<o;)isNaN(i=n.i(r.a)(t[u]))?--a:c+=i;else for(;++u<o;)isNaN(i=n.i(r.a)(e(t[u],u,t)))?--a:c+=i;if(a)return c/a}},function(t,e,n){\"use strict\";var r=n(19),i=n(28),o=n(59);e.a=function(t,e){var a,u=t.length,c=-1,s=[];if(null==e)for(;++c<u;)isNaN(a=n.i(i.a)(t[c]))||s.push(a);else for(;++c<u;)isNaN(a=n.i(i.a)(e(t[c],c,t)))||s.push(a);return n.i(o.a)(s.sort(r.a),.5)}},function(t,e,n){\"use strict\";e.a=function(t){for(var e,n,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(n=new Array(a);--i>=0;)for(r=t[i],e=r.length;--e>=0;)n[--a]=r[e];return n}},function(t,e,n){\"use strict\";e.a=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r}},function(t,e,n){\"use strict\";var r=n(19);e.a=function(t,e){if(n=t.length){var n,i,o=0,a=0,u=t[a];for(null==e&&(e=r.a);++o<n;)(e(i=t[o],u)<0||0!==e(u,u))&&(u=i,a=o);return 0===e(u,u)?a:void 0}}},function(t,e,n){\"use strict\";e.a=function(t,e,n){for(var r,i,o=(null==n?t.length:n)-(e=null==e?0:+e);o;)i=Math.random()*o--|0,r=t[o+e],t[o+e]=t[i+e],t[i+e]=r;return t}},function(t,e,n){\"use strict\";e.a=function(t,e){var n,r=t.length,i=-1,o=0;if(null==e)for(;++i<r;)(n=+t[i])&&(o+=n);else for(;++i<r;)(n=+e(t[i],i,t))&&(o+=n);return o}},function(t,e,n){\"use strict\";var r=n(100),i=n(19),o=n(28),a=n(59);e.a=function(t,e,u){return t=r.a.call(t,o.a).sort(i.a),Math.ceil((u-e)/(2*(n.i(a.a)(t,.75)-n.i(a.a)(t,.25))*Math.pow(t.length,-1/3)))}},function(t,e,n){\"use strict\";var r=n(103);e.a=function(t,e,i){return Math.ceil((i-e)/(3.5*n.i(r.a)(t)*Math.pow(t.length,-1/3)))}},function(t,e,n){\"use strict\";var r=n(110);e.a=function(){return n.i(r.a)(arguments)}},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return r});var r=Array.prototype.slice},function(t,e,n){\"use strict\";function r(t){return\"translate(\"+(t+.5)+\",0)\"}function i(t){return\"translate(0,\"+(t+.5)+\")\"}function o(t){return function(e){return+t(e)}}function a(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function u(){return!this.__axis}function c(t,e){function n(n){var r=null==s?e.ticks?e.ticks.apply(e,c):e.domain():s,i=null==l?e.tickFormat?e.tickFormat.apply(e,c):d.a:l,h=Math.max(f,0)+b,k=e.range(),E=+k[0]+.5,M=+k[k.length-1]+.5,T=(e.bandwidth?a:o)(e.copy()),S=n.selection?n.selection():n,N=S.selectAll(\".domain\").data([null]),A=S.selectAll(\".tick\").data(r,e).order(),P=A.exit(),O=A.enter().append(\"g\").attr(\"class\",\"tick\"),I=A.select(\"line\"),D=A.select(\"text\");N=N.merge(N.enter().insert(\"path\",\".tick\").attr(\"class\",\"domain\").attr(\"stroke\",\"#000\")),A=A.merge(O),I=I.merge(O.append(\"line\").attr(\"stroke\",\"#000\").attr(w+\"2\",x*f)),D=D.merge(O.append(\"text\").attr(\"fill\",\"#000\").attr(w,x*h).attr(\"dy\",t===v?\"0em\":t===m?\"0.71em\":\"0.32em\")),n!==S&&(N=N.transition(n),A=A.transition(n),I=I.transition(n),D=D.transition(n),P=P.transition(n).attr(\"opacity\",_).attr(\"transform\",function(t){return isFinite(t=T(t))?C(t):this.getAttribute(\"transform\")}),O.attr(\"opacity\",_).attr(\"transform\",function(t){var e=this.parentNode.__axis;return C(e&&isFinite(e=e(t))?e:T(t))})),P.remove(),N.attr(\"d\",t===y||t==g?\"M\"+x*p+\",\"+E+\"H0.5V\"+M+\"H\"+x*p:\"M\"+E+\",\"+x*p+\"V0.5H\"+M+\"V\"+x*p),A.attr(\"opacity\",1).attr(\"transform\",function(t){return C(T(t))}),I.attr(w+\"2\",x*f),D.attr(w,x*h).text(i),S.filter(u).attr(\"fill\",\"none\").attr(\"font-size\",10).attr(\"font-family\",\"sans-serif\").attr(\"text-anchor\",t===g?\"start\":t===y?\"end\":\"middle\"),S.each(function(){this.__axis=T})}var c=[],s=null,l=null,f=6,p=6,b=3,x=t===v||t===y?-1:1,w=t===y||t===g?\"x\":\"y\",C=t===v||t===m?r:i;return n.scale=function(t){return arguments.length?(e=t,n):e},n.ticks=function(){return c=h.a.call(arguments),n},n.tickArguments=function(t){return arguments.length?(c=null==t?[]:h.a.call(t),n):c.slice()},n.tickValues=function(t){return arguments.length?(s=null==t?null:h.a.call(t),n):s&&s.slice()},n.tickFormat=function(t){return arguments.length?(l=t,n):l},n.tickSize=function(t){return arguments.length?(f=p=+t,n):f},n.tickSizeInner=function(t){return arguments.length?(f=+t,n):f},n.tickSizeOuter=function(t){return arguments.length?(p=+t,n):p},n.tickPadding=function(t){return arguments.length?(b=+t,n):b},n}function s(t){return c(v,t)}function l(t){return c(g,t)}function f(t){return c(m,t)}function p(t){return c(y,t)}e.a=s,e.b=l,e.c=f,e.d=p;var h=n(208),d=n(210),v=1,g=2,m=3,y=4,_=1e-6},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";var r=(n(214),n(215),n(60));n.d(e,\"a\",function(){return r.a});n(213),n(216),n(212)},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\";n(60)},function(t,e,n){\"use strict\";function r(){}function i(t,e){var n=new r;if(t instanceof r)t.each(function(t){n.add(t)});else if(t){var i=-1,o=t.length;if(null==e)for(;++i<o;)n.add(t[i]);else for(;++i<o;)n.add(e(t[i],i,t))}return n}var o=n(60),a=o.a.prototype;r.prototype=i.prototype={constructor:r,has:a.has,add:function(t){return t+=\"\",this[o.b+t]=t,this},remove:a.remove,clear:a.clear,values:a.keys,size:a.size,empty:a.empty,each:a.each}},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\";function r(t){if(t instanceof o)return new o(t.h,t.s,t.l,t.opacity);t instanceof u.d||(t=n.i(u.e)(t));var e=t.r/255,r=t.g/255,i=t.b/255,a=(g*i+d*e-v*r)/(g+d-v),s=i-a,l=(h*(r-a)-f*s)/p,m=Math.sqrt(l*l+s*s)/(h*a*(1-a)),y=m?Math.atan2(l,s)*c.a-120:NaN;return new o(y<0?y+360:y,m,a,t.opacity)}function i(t,e,n,i){return 1===arguments.length?r(t):new o(t,e,n,null==i?1:i)}function o(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}e.a=i;var a=n(62),u=n(61),c=n(113),s=-.14861,l=1.78277,f=-.29227,p=-.90649,h=1.97294,d=h*p,v=h*l,g=l*f-p*s;n.i(a.a)(o,i,n.i(a.b)(u.f,{brighter:function(t){return t=null==t?u.g:Math.pow(u.g,t),new o(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?u.h:Math.pow(u.h,t),new o(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*c.b,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new u.d(255*(e+n*(s*r+l*i)),255*(e+n*(f*r+p*i)),255*(e+n*(h*r)),this.opacity)}}))},function(t,e,n){\"use strict\";function r(t){if(t instanceof o)return new o(t.l,t.a,t.b,t.opacity);if(t instanceof p){var e=t.h*v.b;return new o(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof d.d||(t=n.i(d.e)(t));var r=s(t.r),i=s(t.g),u=s(t.b),c=a((.4124564*r+.3575761*i+.1804375*u)/g),l=a((.2126729*r+.7151522*i+.072175*u)/m);return new o(116*l-16,500*(c-l),200*(l-a((.0193339*r+.119192*i+.9503041*u)/y)),t.opacity)}function i(t,e,n,i){return 1===arguments.length?r(t):new o(t,e,n,null==i?1:i)}function o(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function a(t){return t>w?Math.pow(t,1/3):t/x+_}function u(t){return t>b?t*t*t:x*(t-_)}function c(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function s(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function l(t){if(t instanceof p)return new p(t.h,t.c,t.l,t.opacity);t instanceof o||(t=r(t));var e=Math.atan2(t.b,t.a)*v.a;return new p(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function f(t,e,n,r){return 1===arguments.length?l(t):new p(t,e,n,null==r?1:r)}function p(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}e.a=i,e.b=f;var h=n(62),d=n(61),v=n(113),g=.95047,m=1,y=1.08883,_=4/29,b=6/29,x=3*b*b,w=b*b*b;n.i(h.a)(o,i,n.i(h.b)(d.f,{brighter:function(t){return new o(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new o(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return t=m*u(t),e=g*u(e),n=y*u(n),new d.d(c(3.2404542*e-1.5371385*t-.4985314*n),c(-.969266*e+1.8760108*t+.041556*n),c(.0556434*e-.2040259*t+1.0572252*n),this.opacity)}})),n.i(h.a)(p,f,n.i(h.b)(d.f,{brighter:function(t){return new p(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new p(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return r(this).rgb()}}))},function(t,e,n){\"use strict\";function r(t){return i=n.i(u.a)(t),o=i.format,a=i.formatPrefix,i}n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a}),e.a=r;var i,o,a,u=n(117);r({decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"]})},function(t,e,n){\"use strict\";e.a=function(t,e){t=t.toPrecision(e);t:for(var n,r=t.length,i=1,o=-1;i<r;++i)switch(t[i]){case\".\":o=n=i;break;case\"0\":0===o&&(o=i),n=i;break;case\"e\":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(n+1):t}},function(t,e,n){\"use strict\";e.a=function(t,e){return function(n,r){for(var i=n.length,o=[],a=0,u=t[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(n.substring(i-=u,i+u)),!((c+=u+1)>r));)u=t[a=(a+1)%t.length];return o.reverse().join(e)}}},function(t,e,n){\"use strict\";e.a=function(t){return function(e){return e.replace(/[0-9]/g,function(e){return t[+e]})}}},function(t,e,n){\"use strict\";var r=n(63);e.a=function(t,e){var i=n.i(r.a)(t,e);if(!i)return t+\"\";var o=i[0],a=i[1];return a<0?\"0.\"+new Array(-a).join(\"0\")+o:o.length>a+1?o.slice(0,a+1)+\".\"+o.slice(a+1):o+new Array(a-o.length+2).join(\"0\")}},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";var r=n(42);e.a=function(t){return Math.max(0,-n.i(r.a)(Math.abs(t)))}},function(t,e,n){\"use strict\";var r=n(42);e.a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(n.i(r.a)(e)/3)))-n.i(r.a)(Math.abs(t)))}},function(t,e,n){\"use strict\";var r=n(42);e.a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,n.i(r.a)(e)-n.i(r.a)(t))+1}},function(t,e,n){\"use strict\";function r(t){return function e(r){function a(e,a){var u=t((e=n.i(i.cubehelix)(e)).h,(a=n.i(i.cubehelix)(a)).h),c=n.i(o.a)(e.s,a.s),s=n.i(o.a)(e.l,a.l),l=n.i(o.a)(e.opacity,a.opacity);return function(t){return e.h=u(t),e.s=c(t),e.l=s(Math.pow(t,r)),e.opacity=l(t),e+\"\"}}return r=+r,a.gamma=e,a}(1)}n.d(e,\"a\",function(){return a});var i=n(10),o=n(31),a=(r(o.b),r(o.a))},function(t,e,n){\"use strict\";function r(t){return function(e,r){var a=t((e=n.i(i.hcl)(e)).h,(r=n.i(i.hcl)(r)).h),u=n.i(o.a)(e.c,r.c),c=n.i(o.a)(e.l,r.l),s=n.i(o.a)(e.opacity,r.opacity);return function(t){return e.h=a(t),e.c=u(t),e.l=c(t),e.opacity=s(t),e+\"\"}}}var i=n(10),o=n(31);r(o.b),r(o.a)},function(t,e,n){\"use strict\";function r(t){return function(e,r){var a=t((e=n.i(i.hsl)(e)).h,(r=n.i(i.hsl)(r)).h),u=n.i(o.a)(e.s,r.s),c=n.i(o.a)(e.l,r.l),s=n.i(o.a)(e.opacity,r.opacity);return function(t){return e.h=a(t),e.s=u(t),e.l=c(t),e.opacity=s(t),e+\"\"}}}var i=n(10),o=n(31);r(o.b),r(o.a)},function(t,e,n){\"use strict\";n(10),n(31)},function(t,e,n){\"use strict\"},function(t,e,n){\"use strict\";e.a=function(t,e){return t=+t,e-=t,function(n){return Math.round(t+e*n)}}},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return i});var r=180/Math.PI,i={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};e.b=function(t,e,n,i,o,a){var u,c,s;return(u=Math.sqrt(t*t+e*e))&&(t/=u,e/=u),(s=t*n+e*i)&&(n-=t*s,i-=e*s),(c=Math.sqrt(n*n+i*i))&&(n/=c,i/=c,s/=c),t*i<e*n&&(t=-t,e=-e,s=-s,u=-u),{translateX:o,translateY:a,rotate:Math.atan2(e,t)*r,skewX:Math.atan(s)*r,scaleX:u,scaleY:c}}},function(t,e,n){\"use strict\";function r(t,e,r,o){function a(t){return t.length?t.pop()+\" \":\"\"}function u(t,o,a,u,c,s){if(t!==a||o!==u){var l=c.push(\"translate(\",null,e,null,r);s.push({i:l-4,x:n.i(i.a)(t,a)},{i:l-2,x:n.i(i.a)(o,u)})}else(a||u)&&c.push(\"translate(\"+a+e+u+r)}function c(t,e,r,u){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),u.push({i:r.push(a(r)+\"rotate(\",null,o)-2,x:n.i(i.a)(t,e)})):e&&r.push(a(r)+\"rotate(\"+e+o)}function s(t,e,r,u){t!==e?u.push({i:r.push(a(r)+\"skewX(\",null,o)-2,x:n.i(i.a)(t,e)}):e&&r.push(a(r)+\"skewX(\"+e+o)}function l(t,e,r,o,u,c){if(t!==r||e!==o){var s=u.push(a(u)+\"scale(\",null,\",\",null,\")\");c.push({i:s-4,x:n.i(i.a)(t,r)},{i:s-2,x:n.i(i.a)(e,o)})}else 1===r&&1===o||u.push(a(u)+\"scale(\"+r+\",\"+o+\")\")}return function(e,n){var r=[],i=[];return e=t(e),n=t(n),u(e.translateX,e.translateY,n.translateX,n.translateY,r,i),c(e.rotate,n.rotate,r,i),s(e.skewX,n.skewX,r,i),l(e.scaleX,e.scaleY,n.scaleX,n.scaleY,r,i),e=n=null,function(t){for(var e,n=-1,o=i.length;++n<o;)r[(e=i[n]).i]=e.x(t);return r.join(\"\")}}}var i=n(43),o=n(236);r(o.a,\"px, \",\"px)\",\"deg)\"),r(o.b,\", \",\")\",\")\")},function(t,e,n){\"use strict\";function r(t){return\"none\"===t?s.a:(o||(o=document.createElement(\"DIV\"),a=document.documentElement,u=document.defaultView),o.style.transform=t,t=u.getComputedStyle(a.appendChild(o),null).getPropertyValue(\"transform\"),a.removeChild(o),t=t.slice(7,-1).split(\",\"),n.i(s.b)(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function i(t){return null==t?s.a:(c||(c=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),c.setAttribute(\"transform\",t),(t=c.transform.baseVal.consolidate())?(t=t.matrix,n.i(s.b)(t.a,t.b,t.c,t.d,t.e,t.f)):s.a)}e.a=r,e.b=i;var o,a,u,c,s=n(234)},function(t,e,n){\"use strict\";Math.SQRT2},function(t,e,n){\"use strict\";function r(){this._x0=this._y0=this._x1=this._y1=null,this._=\"\"}function i(){return new r}var o=Math.PI,a=2*o,u=a-1e-6;r.prototype=i.prototype={constructor:r,moveTo:function(t,e){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+=\"Z\")},lineTo:function(t,e){this._+=\"L\"+(this._x1=+t)+\",\"+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+=\"Q\"+ +t+\",\"+ +e+\",\"+(this._x1=+n)+\",\"+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,i,o){this._+=\"C\"+ +t+\",\"+ +e+\",\"+ +n+\",\"+ +r+\",\"+(this._x1=+i)+\",\"+(this._y1=+o)},arcTo:function(t,e,n,r,i){t=+t,e=+e,n=+n,r=+r,i=+i;var a=this._x1,u=this._y1,c=n-t,s=r-e,l=a-t,f=u-e,p=l*l+f*f;if(i<0)throw new Error(\"negative radius: \"+i);if(null===this._x1)this._+=\"M\"+(this._x1=t)+\",\"+(this._y1=e);else if(p>1e-6)if(Math.abs(f*c-s*l)>1e-6&&i){var h=n-a,d=r-u,v=c*c+s*s,g=h*h+d*d,m=Math.sqrt(v),y=Math.sqrt(p),_=i*Math.tan((o-Math.acos((v+p-g)/(2*m*y)))/2),b=_/y,x=_/m;Math.abs(b-1)>1e-6&&(this._+=\"L\"+(t+b*l)+\",\"+(e+b*f)),this._+=\"A\"+i+\",\"+i+\",0,0,\"+ +(f*h>l*d)+\",\"+(this._x1=t+x*c)+\",\"+(this._y1=e+x*s)}else this._+=\"L\"+(this._x1=t)+\",\"+(this._y1=e);else;},arc:function(t,e,n,r,i,c){t=+t,e=+e,n=+n;var s=n*Math.cos(r),l=n*Math.sin(r),f=t+s,p=e+l,h=1^c,d=c?r-i:i-r;if(n<0)throw new Error(\"negative radius: \"+n);null===this._x1?this._+=\"M\"+f+\",\"+p:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-p)>1e-6)&&(this._+=\"L\"+f+\",\"+p),n&&(d<0&&(d=d%a+a),d>u?this._+=\"A\"+n+\",\"+n+\",0,1,\"+h+\",\"+(t-s)+\",\"+(e-l)+\"A\"+n+\",\"+n+\",0,1,\"+h+\",\"+(this._x1=f)+\",\"+(this._y1=p):d>1e-6&&(this._+=\"A\"+n+\",\"+n+\",0,\"+ +(d>=o)+\",\"+h+\",\"+(this._x1=t+n*Math.cos(i))+\",\"+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)+\"h\"+ +n+\"v\"+ +r+\"h\"+-n+\"Z\"},toString:function(){return this._}},e.a=i},function(t,e,n){\"use strict\";function r(){function t(){var t=c().length,r=l[1]<l[0],o=l[r-0],u=l[1-r];e=(u-o)/Math.max(1,t-p+2*h),f&&(e=Math.floor(e)),o+=(u-o-e*(t-p))*d,i=e*(1-p),f&&(o=Math.round(o),i=Math.round(i));var v=n.i(a.range)(t).map(function(t){return o+e*t});return s(r?v.reverse():v)}var e,i,o=n.i(u.a)().unknown(void 0),c=o.domain,s=o.range,l=[0,1],f=!1,p=0,h=0,d=.5;return delete o.unknown,o.domain=function(e){return arguments.length?(c(e),t()):c()},o.range=function(e){return arguments.length?(l=[+e[0],+e[1]],t()):l.slice()},o.rangeRound=function(e){return l=[+e[0],+e[1]],f=!0,t()},o.bandwidth=function(){return i},o.step=function(){return e},o.round=function(e){return arguments.length?(f=!!e,t()):f},o.padding=function(e){return arguments.length?(p=h=Math.max(0,Math.min(1,e)),t()):p},o.paddingInner=function(e){return arguments.length?(p=Math.max(0,Math.min(1,e)),t()):p},o.paddingOuter=function(e){return arguments.length?(h=Math.max(0,Math.min(1,e)),t()):h},o.align=function(e){return arguments.length?(d=Math.max(0,Math.min(1,e)),t()):d},o.copy=function(){return r().domain(c()).range(l).round(f).paddingInner(p).paddingOuter(h).align(d)},t()}function i(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return i(e())},t}function o(){return i(r().paddingInner(1))}e.a=r,e.b=o;var a=n(7),u=n(127)},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\")},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\")},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\")},function(t,e,n){\"use strict\";var r=n(33);e.a=n.i(r.a)(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\")},function(t,e,n){\"use strict\";var r=n(10),i=n(30);e.a=n.i(i.d)(n.i(r.cubehelix)(300,.5,0),n.i(r.cubehelix)(-240,.5,1))},function(t,e,n){\"use strict\";function r(){function t(t){return+t}var e=[0,1];return t.invert=t,t.domain=t.range=function(n){return arguments.length?(e=i.a.call(n,a.a),t):e.slice()},t.copy=function(){return r().domain(e)},n.i(o.b)(t)}e.a=r;var i=n(16),o=n(34),a=n(126)},function(t,e,n){\"use strict\";function r(t,e){return(e=Math.log(e/t))?function(n){return Math.log(n/t)/e}:n.i(p.a)(e)}function i(t,e){return t<0?function(n){return-Math.pow(-e,n)*Math.pow(-t,1-n)}:function(n){return Math.pow(e,n)*Math.pow(t,1-n)}}function o(t){return isFinite(t)?+(\"1e\"+t):t<0?0:t}function a(t){return 10===t?o:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}}function u(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})}function c(t){return function(e){return-t(-e)}}function s(){function t(){return v=u(p),g=a(p),o()[0]<0&&(v=c(v),g=c(g)),e}var e=n.i(d.a)(r,i).domain([1,10]),o=e.domain,p=10,v=u(10),g=a(10);return e.base=function(e){return arguments.length?(p=+e,t()):p},e.domain=function(e){return arguments.length?(o(e),t()):o()},e.ticks=function(t){var e,r=o(),i=r[0],a=r[r.length-1];(e=a<i)&&(f=i,i=a,a=f);var u,c,s,f=v(i),h=v(a),d=null==t?10:+t,m=[];if(!(p%1)&&h-f<d){if(f=Math.round(f)-1,h=Math.round(h)+1,i>0){for(;f<h;++f)for(c=1,u=g(f);c<p;++c)if(!((s=u*c)<i)){if(s>a)break;m.push(s)}}else for(;f<h;++f)for(c=p-1,u=g(f);c>=1;--c)if(!((s=u*c)<i)){if(s>a)break;m.push(s)}}else m=n.i(l.ticks)(f,h,Math.min(h-f,d)).map(g);return e?m.reverse():m},e.tickFormat=function(t,r){if(null==r&&(r=10===p?\".0e\":\",\"),\"function\"!=typeof r&&(r=n.i(f.format)(r)),t===1/0)return r;null==t&&(t=10);var i=Math.max(1,p*t/e.ticks().length);return function(t){var e=t/g(Math.round(v(t)));return e*p<p-.5&&(e*=p),e<=i?r(t):\"\"}},e.nice=function(){return o(n.i(h.a)(o(),{floor:function(t){return g(Math.floor(v(t)))},ceil:function(t){return g(Math.ceil(v(t)))}}))},e.copy=function(){return n.i(d.c)(e,s().base(p))},e}e.a=s;var l=n(7),f=n(29),p=n(67),h=n(125),d=n(44)},function(t,e,n){\"use strict\";function r(t,e){return t<0?-Math.pow(-t,e):Math.pow(t,e)}function i(){function t(t,e){return(e=r(e,o)-(t=r(t,o)))?function(n){return(r(n,o)-t)/e}:n.i(a.a)(e)}function e(t,e){return e=r(e,o)-(t=r(t,o)),function(n){return r(t+e*n,1/o)}}var o=1,s=n.i(c.a)(t,e),l=s.domain;return s.exponent=function(t){return arguments.length?(o=+t,l(l())):o},s.copy=function(){return n.i(c.c)(s,i().exponent(o))},n.i(u.b)(s)}function o(){return i().exponent(.5)}e.a=i,e.b=o;var a=n(67),u=n(34),c=n(44)},function(t,e,n){\"use strict\";function r(){function t(){var t=0,r=Math.max(1,u.length);for(c=new Array(r-1);++t<r;)c[t-1]=n.i(i.quantile)(a,t/r);return e}function e(t){if(!isNaN(t=+t))return u[n.i(i.bisect)(c,t)]}var a=[],u=[],c=[];return e.invertExtent=function(t){var e=u.indexOf(t);return e<0?[NaN,NaN]:[e>0?c[e-1]:a[0],e<c.length?c[e]:a[a.length-1]]},e.domain=function(e){if(!arguments.length)return a.slice();a=[];for(var n,r=0,o=e.length;r<o;++r)null==(n=e[r])||isNaN(n=+n)||a.push(n);return a.sort(i.ascending),t()},e.range=function(e){return arguments.length?(u=o.b.call(e),t()):u.slice()},e.quantiles=function(){return c.slice()},e.copy=function(){return r().domain(a).range(u)},e}e.a=r;var i=n(7),o=n(16)},function(t,e,n){\"use strict\";function r(){function t(t){if(t<=t)return f[n.i(i.bisect)(l,t,0,s)]}function e(){var e=-1;for(l=new Array(s);++e<s;)l[e]=((e+1)*c-(e-s)*u)/(s+1);return t}var u=0,c=1,s=1,l=[.5],f=[0,1];return t.domain=function(t){return arguments.length?(u=+t[0],c=+t[1],e()):[u,c]},t.range=function(t){return arguments.length?(s=(f=o.b.call(t)).length-1,e()):f.slice()},t.invertExtent=function(t){var e=f.indexOf(t);return e<0?[NaN,NaN]:e<1?[u,l[0]]:e>=s?[l[s-1],c]:[l[e-1],l[e]]},t.copy=function(){return r().domain([u,c]).range(f)},n.i(a.b)(t)}e.a=r;var i=n(7),o=n(16),a=n(34)},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a});var r=n(10),i=n(30),o=n.i(i.d)(n.i(r.cubehelix)(-100,.75,.35),n.i(r.cubehelix)(80,1.5,.8)),a=n.i(i.d)(n.i(r.cubehelix)(260,.75,.35),n.i(r.cubehelix)(80,1.5,.8)),u=n.i(r.cubehelix)();e.a=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return u.h=360*t-100,u.s=1.5-1.5*e,u.l=.8-.9*e,u+\"\"}},function(t,e,n){\"use strict\";function r(t){function e(e){var n=(e-o)/(a-o);return t(u?Math.max(0,Math.min(1,n)):n)}var o=0,a=1,u=!1;return e.domain=function(t){return arguments.length?(o=+t[0],a=+t[1],e):[o,a]},e.clamp=function(t){return arguments.length?(u=!!t,e):u},e.interpolator=function(n){return arguments.length?(t=n,e):t},e.copy=function(){return r(t).domain([o,a]).clamp(u)},n.i(i.b)(e)}e.a=r;var i=n(34)},function(t,e,n){\"use strict\";function r(){function t(t){if(t<=t)return a[n.i(i.bisect)(e,t,0,u)]}var e=[.5],a=[0,1],u=1;return t.domain=function(n){return arguments.length?(e=o.b.call(n),u=Math.min(e.length,a.length-1),t):e.slice()},t.range=function(n){return arguments.length?(a=o.b.call(n),u=Math.min(e.length,a.length-1),t):a.slice()},t.invertExtent=function(t){var n=a.indexOf(t);return[e[n-1],e[n]]},t.copy=function(){return r().domain(e).range(a)},t}e.a=r;var i=n(7),o=n(16)},function(t,e,n){\"use strict\";var r=n(7),i=n(29);e.a=function(t,e,o){var a,u=t[0],c=t[t.length-1],s=n.i(r.tickStep)(u,c,null==e?10:e);switch(o=n.i(i.formatSpecifier)(null==o?\",f\":o),o.type){case\"s\":var l=Math.max(Math.abs(u),Math.abs(c));return null!=o.precision||isNaN(a=n.i(i.precisionPrefix)(s,l))||(o.precision=a),n.i(i.formatPrefix)(o,l);case\"\":case\"e\":case\"g\":case\"p\":case\"r\":null!=o.precision||isNaN(a=n.i(i.precisionRound)(s,Math.max(Math.abs(u),Math.abs(c))))||(o.precision=a-(\"e\"===o.type));break;case\"f\":case\"%\":null!=o.precision||isNaN(a=n.i(i.precisionFixed)(s))||(o.precision=a-2*(\"%\"===o.type))}return n.i(i.format)(o)}},function(t,e,n){\"use strict\";var r=n(128),i=n(78),o=n(80);e.a=function(){return n.i(r.b)(o.h,o.k,o.l,o.b,o.m,o.n,o.o,o.p,i.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])}},function(t,e,n){\"use strict\";function r(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}n.d(e,\"b\",function(){return o}),n.d(e,\"c\",function(){return a}),n.d(e,\"d\",function(){return u});var i=n(33);e.a=r(n.i(i.a)(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));var o=r(n.i(i.a)(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\")),a=r(n.i(i.a)(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\")),u=r(n.i(i.a)(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"))},function(t,e,n){\"use strict\";e.a=function(t){return function(){return t}}},function(t,e,n){\"use strict\";var r=n(45),i=n(131);e.a=function(t){return n.i(i.a)(n.i(r.a)(t).call(document.documentElement))}},function(t,e,n){\"use strict\";function r(){return new i}function i(){this._=\"@\"+(++o).toString(36)}e.a=r;var o=0;i.prototype=r.prototype={constructor:i,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}}},function(t,e,n){\"use strict\";var r=n(72),i=n(46);e.a=function(t){var e=n.i(r.a)();return e.changedTouches&&(e=e.changedTouches[0]),n.i(i.a)(t,e)}},function(t,e,n){\"use strict\";var r=n(8);e.a=function(t){return\"string\"==typeof t?new r.b([document.querySelectorAll(t)],[document.documentElement]):new r.b([null==t?[]:t],r.c)}},function(t,e,n){\"use strict\";var r=n(45);e.a=function(t){var e=\"function\"==typeof t?t:n.i(r.a)(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}},function(t,e,n){\"use strict\";function r(t){return function(){this.removeAttribute(t)}}function i(t){return function(){this.removeAttributeNS(t.space,t.local)}}function o(t,e){return function(){this.setAttribute(t,e)}}function a(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function u(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function c(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}var s=n(68);e.a=function(t,e){var l=n.i(s.a)(t);if(arguments.length<2){var f=this.node();return l.local?f.getAttributeNS(l.space,l.local):f.getAttribute(l)}return this.each((null==e?l.local?i:r:\"function\"==typeof e?l.local?c:u:l.local?a:o)(l,e))}},function(t,e,n){\"use strict\";e.a=function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}},function(t,e,n){\"use strict\";function r(t){return t.trim().split(/^|\\s+/)}function i(t){return t.classList||new o(t)}function o(t){this._node=t,this._names=r(t.getAttribute(\"class\")||\"\")}function a(t,e){for(var n=i(t),r=-1,o=e.length;++r<o;)n.add(e[r])}function u(t,e){for(var n=i(t),r=-1,o=e.length;++r<o;)n.remove(e[r])}function c(t){return function(){a(this,t)}}function s(t){return function(){u(this,t)}}function l(t,e){return function(){(e.apply(this,arguments)?a:u)(this,t)}}o.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}},e.a=function(t,e){var n=r(t+\"\");if(arguments.length<2){for(var o=i(this.node()),a=-1,u=n.length;++a<u;)if(!o.contains(n[a]))return!1;return!0}return this.each((\"function\"==typeof e?l:e?c:s)(n,e))}},function(t,e,n){\"use strict\";function r(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function i(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}e.a=function(t){return this.select(t?i:r)}},function(t,e,n){\"use strict\";function r(t,e,n,r,i,o){for(var u,c=0,s=e.length,l=o.length;c<l;++c)(u=e[c])?(u.__data__=o[c],r[c]=u):n[c]=new a.b(t,o[c]);for(;c<s;++c)(u=e[c])&&(i[c]=u)}function i(t,e,n,r,i,o,u){var s,l,f,p={},h=e.length,d=o.length,v=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(v[s]=f=c+u.call(l,l.__data__,s,e),f in p?i[s]=l:p[f]=l);for(s=0;s<d;++s)f=c+u.call(t,o[s],s,o),(l=p[f])?(r[s]=l,l.__data__=o[s],p[f]=null):n[s]=new a.b(t,o[s]);for(s=0;s<h;++s)(l=e[s])&&p[v[s]]===l&&(i[s]=l)}var o=n(8),a=n(132),u=n(256),c=\"$\";e.a=function(t,e){if(!t)return y=new Array(this.size()),d=-1,this.each(function(t){y[++d]=t}),y;var a=e?i:r,c=this._parents,s=this._groups;\"function\"!=typeof t&&(t=n.i(u.a)(t));for(var l=s.length,f=new Array(l),p=new Array(l),h=new Array(l),d=0;d<l;++d){var v=c[d],g=s[d],m=g.length,y=t.call(v,v&&v.__data__,d,c),_=y.length,b=p[d]=new Array(_),x=f[d]=new Array(_);a(v,g,b,x,h[d]=new Array(m),y,e);for(var w,C,k=0,E=0;k<_;++k)if(w=b[k]){for(k>=E&&(E=k+1);!(C=x[E])&&++E<_;);w._next=C||null}}return f=new o.b(f,c),f._enter=p,f._exit=h,f}},function(t,e,n){\"use strict\";e.a=function(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__}},function(t,e,n){\"use strict\";function r(t,e,r){var i=n.i(a.a)(t),o=i.CustomEvent;\"function\"==typeof o?o=new o(e,r):(o=i.document.createEvent(\"Event\"),r?(o.initEvent(e,r.bubbles,r.cancelable),o.detail=r.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function i(t,e){return function(){return r(this,t,e)}}function o(t,e){return function(){return r(this,t,e.apply(this,arguments))}}var a=n(73);e.a=function(t,e){return this.each((\"function\"==typeof e?o:i)(t,e))}},function(t,e,n){\"use strict\";e.a=function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this}},function(t,e,n){\"use strict\";e.a=function(){return!this.node()}},function(t,e,n){\"use strict\";var r=n(133),i=n(8);e.a=function(){return new i.b(this._exit||this._groups.map(r.a),this._parents)}},function(t,e,n){\"use strict\";var r=n(8),i=n(130);e.a=function(t){\"function\"!=typeof t&&(t=n.i(i.a)(t));for(var e=this._groups,o=e.length,a=new Array(o),u=0;u<o;++u)for(var c,s=e[u],l=s.length,f=a[u]=[],p=0;p<l;++p)(c=s[p])&&t.call(c,c.__data__,p,s)&&f.push(c);return new r.b(a,this._parents)}},function(t,e,n){\"use strict\";function r(){this.innerHTML=\"\"}function i(t){return function(){this.innerHTML=t}}function o(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\"\":e}}e.a=function(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().innerHTML}},function(t,e,n){\"use strict\";function r(){return null}var i=n(45),o=n(71);e.a=function(t,e){var a=\"function\"==typeof t?t:n.i(i.a)(t),u=null==e?r:\"function\"==typeof e?e:n.i(o.a)(e);return this.select(function(){return this.insertBefore(a.apply(this,arguments),u.apply(this,arguments)||null)})}},function(t,e,n){\"use strict\";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}e.a=function(){return this.each(r)}},function(t,e,n){\"use strict\";var r=n(8);e.a=function(t){for(var e=this._groups,n=t._groups,i=e.length,o=n.length,a=Math.min(i,o),u=new Array(i),c=0;c<a;++c)for(var s,l=e[c],f=n[c],p=l.length,h=u[c]=new Array(p),d=0;d<p;++d)(s=l[d]||f[d])&&(h[d]=s);for(;c<i;++c)u[c]=e[c];return new r.b(u,this._parents)}},function(t,e,n){\"use strict\";e.a=function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null}},function(t,e,n){\"use strict\";e.a=function(){var t=new Array(this.size()),e=-1;return this.each(function(){t[++e]=this}),t}},function(t,e,n){\"use strict\";e.a=function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this}},function(t,e,n){\"use strict\";function r(t){return function(){delete this[t]}}function i(t,e){return function(){this[t]=e}}function o(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}e.a=function(t,e){return arguments.length>1?this.each((null==e?r:\"function\"==typeof e?o:i)(t,e)):this.node()[t]}},function(t,e,n){\"use strict\";function r(){this.nextSibling&&this.parentNode.appendChild(this)}e.a=function(){return this.each(r)}},function(t,e,n){\"use strict\";function r(){var t=this.parentNode;t&&t.removeChild(this)}e.a=function(){return this.each(r)}},function(t,e,n){\"use strict\";var r=n(8),i=n(71);e.a=function(t){\"function\"!=typeof t&&(t=n.i(i.a)(t));for(var e=this._groups,o=e.length,a=new Array(o),u=0;u<o;++u)for(var c,s,l=e[u],f=l.length,p=a[u]=new Array(f),h=0;h<f;++h)(c=l[h])&&(s=t.call(c,c.__data__,h,l))&&(\"__data__\"in c&&(s.__data__=c.__data__),p[h]=s);return new r.b(a,this._parents)}},function(t,e,n){\"use strict\";var r=n(8),i=n(135);e.a=function(t){\"function\"!=typeof t&&(t=n.i(i.a)(t));for(var e=this._groups,o=e.length,a=[],u=[],c=0;c<o;++c)for(var s,l=e[c],f=l.length,p=0;p<f;++p)(s=l[p])&&(a.push(t.call(s,s.__data__,p,l)),u.push(s));return new r.b(a,u)}},function(t,e,n){\"use strict\";e.a=function(){var t=0;return this.each(function(){++t}),t}},function(t,e,n){\"use strict\";function r(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}var i=n(8);e.a=function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=r);for(var n=this._groups,o=n.length,a=new Array(o),u=0;u<o;++u){for(var c,s=n[u],l=s.length,f=a[u]=new Array(l),p=0;p<l;++p)(c=s[p])&&(f[p]=c);f.sort(e)}return new i.b(a,this._parents).order()}},function(t,e,n){\"use strict\";function r(){this.textContent=\"\"}function i(t){return function(){this.textContent=t}}function o(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?\"\":e}}e.a=function(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().textContent}},function(t,e,n){\"use strict\";var r=n(72),i=n(46);e.a=function(t,e,o){arguments.length<3&&(o=e,e=n.i(r.a)().changedTouches);for(var a,u=0,c=e?e.length:0;u<c;++u)if((a=e[u]).identifier===o)return n.i(i.a)(t,a);return null}},function(t,e,n){\"use strict\";var r=n(72),i=n(46);e.a=function(t,e){null==e&&(e=n.i(r.a)().touches);for(var o=0,a=e?e.length:0,u=new Array(a);o<a;++o)u[o]=n.i(i.a)(t,e[o]);return u}},function(t,e,n){\"use strict\";function r(t){return t.innerRadius}function i(t){return t.outerRadius}function o(t){return t.startAngle}function a(t){return t.endAngle}function u(t){return t&&t.padAngle}function c(t,e,n,r,i,o,a,u){var c=n-t,s=r-e,l=a-i,f=u-o,p=(l*(e-o)-f*(t-i))/(f*c-l*s);return[t+p*c,e+p*s]}function s(t,e,r,i,o,a,u){var c=t-r,s=e-i,l=(u?a:-a)/n.i(p.d)(c*c+s*s),f=l*s,h=-l*c,d=t+f,v=e+h,g=r+f,m=i+h,y=(d+g)/2,_=(v+m)/2,b=g-d,x=m-v,w=b*b+x*x,C=o-a,k=d*m-g*v,E=(x<0?-1:1)*n.i(p.d)(n.i(p.e)(0,C*C*w-k*k)),M=(k*x-b*E)/w,T=(-k*b-x*E)/w,S=(k*x+b*E)/w,N=(-k*b+x*E)/w,A=M-y,P=T-_,O=S-y,I=N-_;return A*A+P*P>O*O+I*I&&(M=S,T=N),{cx:M,cy:T,x01:-f,y01:-h,x11:M*(o/C-1),y11:T*(o/C-1)}}var l=n(32),f=n(17),p=n(35);e.a=function(){function t(){var t,r,i=+e.apply(this,arguments),o=+h.apply(this,arguments),a=g.apply(this,arguments)-p.f,u=m.apply(this,arguments)-p.f,f=n.i(p.g)(u-a),b=u>a;if(_||(_=t=n.i(l.a)()),o<i&&(r=o,o=i,i=r),o>p.a)if(f>p.c-p.a)_.moveTo(o*n.i(p.h)(a),o*n.i(p.i)(a)),_.arc(0,0,o,a,u,!b),i>p.a&&(_.moveTo(i*n.i(p.h)(u),i*n.i(p.i)(u)),_.arc(0,0,i,u,a,b));else{var x,w,C=a,k=u,E=a,M=u,T=f,S=f,N=y.apply(this,arguments)/2,A=N>p.a&&(v?+v.apply(this,arguments):n.i(p.d)(i*i+o*o)),P=n.i(p.j)(n.i(p.g)(o-i)/2,+d.apply(this,arguments)),O=P,I=P;if(A>p.a){var D=n.i(p.k)(A/i*n.i(p.i)(N)),R=n.i(p.k)(A/o*n.i(p.i)(N));(T-=2*D)>p.a?(D*=b?1:-1,E+=D,M-=D):(T=0,E=M=(a+u)/2),(S-=2*R)>p.a?(R*=b?1:-1,C+=R,k-=R):(S=0,C=k=(a+u)/2)}var L=o*n.i(p.h)(C),U=o*n.i(p.i)(C),F=i*n.i(p.h)(M),j=i*n.i(p.i)(M);if(P>p.a){var B=o*n.i(p.h)(k),V=o*n.i(p.i)(k),W=i*n.i(p.h)(E),z=i*n.i(p.i)(E);if(f<p.b){var H=T>p.a?c(L,U,W,z,B,V,F,j):[F,j],q=L-H[0],Y=U-H[1],K=B-H[0],G=V-H[1],$=1/n.i(p.i)(n.i(p.l)((q*K+Y*G)/(n.i(p.d)(q*q+Y*Y)*n.i(p.d)(K*K+G*G)))/2),X=n.i(p.d)(H[0]*H[0]+H[1]*H[1]);O=n.i(p.j)(P,(i-X)/($-1)),I=n.i(p.j)(P,(o-X)/($+1))}}S>p.a?I>p.a?(x=s(W,z,L,U,o,I,b),w=s(B,V,F,j,o,I,b),_.moveTo(x.cx+x.x01,x.cy+x.y01),I<P?_.arc(x.cx,x.cy,I,n.i(p.m)(x.y01,x.x01),n.i(p.m)(w.y01,w.x01),!b):(_.arc(x.cx,x.cy,I,n.i(p.m)(x.y01,x.x01),n.i(p.m)(x.y11,x.x11),!b),_.arc(0,0,o,n.i(p.m)(x.cy+x.y11,x.cx+x.x11),n.i(p.m)(w.cy+w.y11,w.cx+w.x11),!b),_.arc(w.cx,w.cy,I,n.i(p.m)(w.y11,w.x11),n.i(p.m)(w.y01,w.x01),!b))):(_.moveTo(L,U),_.arc(0,0,o,C,k,!b)):_.moveTo(L,U),i>p.a&&T>p.a?O>p.a?(x=s(F,j,B,V,i,-O,b),w=s(L,U,W,z,i,-O,b),_.lineTo(x.cx+x.x01,x.cy+x.y01),O<P?_.arc(x.cx,x.cy,O,n.i(p.m)(x.y01,x.x01),n.i(p.m)(w.y01,w.x01),!b):(_.arc(x.cx,x.cy,O,n.i(p.m)(x.y01,x.x01),n.i(p.m)(x.y11,x.x11),!b),_.arc(0,0,i,n.i(p.m)(x.cy+x.y11,x.cx+x.x11),n.i(p.m)(w.cy+w.y11,w.cx+w.x11),b),_.arc(w.cx,w.cy,O,n.i(p.m)(w.y11,w.x11),n.i(p.m)(w.y01,w.x01),!b))):_.arc(0,0,i,M,E,b):_.lineTo(F,j)}else _.moveTo(0,0);if(_.closePath(),t)return _=null,t+\"\"||null}var e=r,h=i,d=n.i(f.a)(0),v=null,g=o,m=a,y=u,_=null;return t.centroid=function(){var t=(+e.apply(this,arguments)+ +h.apply(this,arguments))/2,r=(+g.apply(this,arguments)+ +m.apply(this,arguments))/2-p.b/2;return[n.i(p.h)(r)*t,n.i(p.i)(r)*t]},t.innerRadius=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(f.a)(+r),t):e},t.outerRadius=function(e){return arguments.length?(h=\"function\"==typeof e?e:n.i(f.a)(+e),t):h},t.cornerRadius=function(e){return arguments.length?(d=\"function\"==typeof e?e:n.i(f.a)(+e),t):d},t.padRadius=function(e){return arguments.length?(v=null==e?null:\"function\"==typeof e?e:n.i(f.a)(+e),t):v},t.startAngle=function(e){return arguments.length?(g=\"function\"==typeof e?e:n.i(f.a)(+e),t):g},t.endAngle=function(e){return arguments.length?(m=\"function\"==typeof e?e:n.i(f.a)(+e),t):m},t.padAngle=function(e){return arguments.length?(y=\"function\"==typeof e?e:n.i(f.a)(+e),t):y},t.context=function(e){return arguments.length?(_=null==e?null:e,t):_},t}},function(t,e,n){\"use strict\";var r=n(141),i=n(137),o=n(142);e.a=function(){var t=n.i(i.a)().curve(r.b),e=t.curve,a=t.lineX0,u=t.lineX1,c=t.lineY0,s=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return n.i(o.b)(a())},delete t.lineX0,t.lineEndAngle=function(){return n.i(o.b)(u())},delete t.lineX1,t.lineInnerRadius=function(){return n.i(o.b)(c())},delete t.lineY0,t.lineOuterRadius=function(){return n.i(o.b)(s())},delete t.lineY1,t.curve=function(t){return arguments.length?e(n.i(r.a)(t)):e()._curve},t}},function(t,e,n){\"use strict\";function r(t){this._context=t}var i=n(50),o=n(47);r.prototype={areaStart:i.a,areaEnd:i.a,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:n.i(o.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t){this._context=t}var i=n(47);r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,o=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,o):this._context.moveTo(r,o);break;case 3:this._point=4;default:n.i(i.c)(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t,e){this._basis=new i.b(t),this._beta=e}var i=n(47);r.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r,i=t[0],o=e[0],a=t[n]-i,u=e[n]-o,c=-1;++c<=n;)r=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*e[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}},e.a=function t(e){function n(t){return 1===e?new i.b(t):new r(t,e)}return n.beta=function(e){return t(+e)},n}(.85)},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._alpha=e}var i=n(139),o=n(50),a=n(74);r.prototype={areaStart:o.a,areaEnd:o.a,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:n.i(a.b)(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return e?new r(t,e):new i.b(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._alpha=e}var i=n(140),o=n(74);r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:n.i(o.b)(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}},e.a=function t(e){function n(t){return e?new r(t,e):new i.b(t,0)}return n.alpha=function(e){return t(+e)},n}(.5)},function(t,e,n){\"use strict\";function r(t){this._context=t}var i=n(50);r.prototype={areaStart:i.a,areaEnd:i.a,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t){return t<0?-1:1}function i(t,e,n){var i=t._x1-t._x0,o=e-t._x1,a=(t._y1-t._y0)/(i||o<0&&-0),u=(n-t._y1)/(o||i<0&&-0),c=(a*o+u*i)/(i+o);return(r(a)+r(u))*Math.min(Math.abs(a),Math.abs(u),.5*Math.abs(c))||0}function o(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function a(t,e,n){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*e,o-u,a-u*n,o,a)}function u(t){this._context=t}function c(t){this._context=new s(t)}function s(t){this._context=t}function l(t){return new u(t)}function f(t){return new c(t)}e.a=l,e.b=f,u.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:a(this,this._t0,o(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,t!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,a(this,o(this,n=i(this,t,e)),n);break;default:a(this,this._t0,n=i(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(c.prototype=Object.create(u.prototype)).point=function(t,e){u.prototype.point.call(this,e,t)},s.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}}},function(t,e,n){\"use strict\";function r(t){this._context=t}function i(t){var e,n,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,o[e]=4,a[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/o[e-1],o[e]-=n,a[e]-=n*a[e-1];for(i[r-1]=a[r-1]/o[r-1],e=r-2;e>=0;--e)i[e]=(a[e]-i[e+1])/o[e];for(o[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var r=i(t),o=i(e),a=0,u=1;u<n;++a,++u)this._context.bezierCurveTo(r[0][a],o[0][a],r[1][a],o[1][a],t[u],e[u]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},e.a=function(t){return new r(t)}},function(t,e,n){\"use strict\";function r(t,e){this._context=t,this._t=e}function i(t){return new r(t,0)}function o(t){return new r(t,1)}e.c=i,e.b=o,r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},e.a=function(t){return new r(t,.5)}},function(t,e,n){\"use strict\";e.a=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}},function(t,e,n){\"use strict\";e.a=function(t){return t}},function(t,e,n){\"use strict\";function r(t){return t.source}function i(t){return t.target}function o(t){function e(){var e,r=h.a.call(arguments),i=o.apply(this,r),l=a.apply(this,r);if(s||(s=e=n.i(p.a)()),t(s,+u.apply(this,(r[0]=i,r)),+c.apply(this,r),+u.apply(this,(r[0]=l,r)),+c.apply(this,r)),e)return s=null,e+\"\"||null}var o=r,a=i,u=v.a,c=v.b,s=null;return e.source=function(t){return arguments.length?(o=t,e):o},e.target=function(t){return arguments.length?(a=t,e):a},e.x=function(t){return arguments.length?(u=\"function\"==typeof t?t:n.i(d.a)(+t),e):u},e.y=function(t){return arguments.length?(c=\"function\"==typeof t?t:n.i(d.a)(+t),e):c},e.context=function(t){return arguments.length?(s=null==t?null:t,e):s},e}function a(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function u(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function c(t,e,r,i,o){var a=n.i(g.a)(e,r),u=n.i(g.a)(e,r=(r+o)/2),c=n.i(g.a)(i,r),s=n.i(g.a)(i,o);t.moveTo(a[0],a[1]),t.bezierCurveTo(u[0],u[1],c[0],c[1],s[0],s[1])}function s(){return o(a)}function l(){return o(u)}function f(){var t=o(c);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}e.a=s,e.b=l,e.c=f;var p=n(32),h=n(138),d=n(17),v=n(77),g=n(143)},function(t,e,n){\"use strict\";e.a=function(t,e){if((u=t.length)>1)for(var n,r,i,o,a,u,c=0,s=t[e[0]].length;c<s;++c)for(o=a=0,n=0;n<u;++n)(i=(r=t[e[n]][c])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o}},function(t,e,n){\"use strict\";var r=n(36);e.a=function(t,e){if((o=t.length)>0){for(var i,o,a,u=0,c=t[0].length;u<c;++u){for(a=i=0;i<o;++i)a+=t[i][u][1]||0;if(a)for(i=0;i<o;++i)t[i][u][1]/=a}n.i(r.a)(t,e)}}},function(t,e,n){\"use strict\";var r=n(36);e.a=function(t,e){if((i=t.length)>0){for(var i,o=0,a=t[e[0]],u=a.length;o<u;++o){for(var c=0,s=0;c<i;++c)s+=t[c][o][1]||0;a[o][1]+=a[o][0]=-s/2}n.i(r.a)(t,e)}}},function(t,e,n){\"use strict\";var r=n(36);e.a=function(t,e){if((a=t.length)>0&&(o=(i=t[e[0]]).length)>0){for(var i,o,a,u=0,c=1;c<o;++c){for(var s=0,l=0,f=0;s<a;++s){for(var p=t[e[s]],h=p[c][1]||0,d=p[c-1][1]||0,v=(h-d)/2,g=0;g<s;++g){var m=t[e[g]];v+=(m[c][1]||0)-(m[c-1][1]||0)}l+=h,f+=v*h}i[c-1][1]+=i[c-1][0]=u,l&&(u-=f/l)}i[c-1][1]+=i[c-1][0]=u,n.i(r.a)(t,e)}}},function(t,e,n){\"use strict\";var r=n(76);e.a=function(t){return n.i(r.a)(t).reverse()}},function(t,e,n){\"use strict\";var r=n(37),i=n(76);e.a=function(t){var e,o,a=t.length,u=t.map(i.b),c=n.i(r.a)(t).sort(function(t,e){return u[e]-u[t]}),s=0,l=0,f=[],p=[];for(e=0;e<a;++e)o=c[e],s<l?(s+=u[o],f.push(o)):(l+=u[o],p.push(o));return p.reverse().concat(f)}},function(t,e,n){\"use strict\";var r=n(37);e.a=function(t){return n.i(r.a)(t).reverse()}},function(t,e,n){\"use strict\";var r=n(17),i=n(301),o=n(302),a=n(35);e.a=function(){function t(t){var n,r,i,o,p,h=t.length,d=0,v=new Array(h),g=new Array(h),m=+s.apply(this,arguments),y=Math.min(a.c,Math.max(-a.c,l.apply(this,arguments)-m)),_=Math.min(Math.abs(y)/h,f.apply(this,arguments)),b=_*(y<0?-1:1);for(n=0;n<h;++n)(p=g[v[n]=n]=+e(t[n],n,t))>0&&(d+=p);for(null!=u?v.sort(function(t,e){return u(g[t],g[e])}):null!=c&&v.sort(function(e,n){return c(t[e],t[n])}),n=0,i=d?(y-h*b)/d:0;n<h;++n,m=o)r=v[n],p=g[r],o=m+(p>0?p*i:0)+b,g[r]={data:t[r],index:n,value:p,startAngle:m,endAngle:o,padAngle:_};return g}var e=o.a,u=i.a,c=null,s=n.i(r.a)(0),l=n.i(r.a)(a.c),f=n.i(r.a)(0);return t.value=function(i){return arguments.length?(e=\"function\"==typeof i?i:n.i(r.a)(+i),t):e},t.sortValues=function(e){return arguments.length?(u=e,c=null,t):u},t.sort=function(e){return arguments.length?(c=e,u=null,t):c},t.startAngle=function(e){return arguments.length?(s=\"function\"==typeof e?e:n.i(r.a)(+e),t):s},t.endAngle=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(r.a)(+e),t):l},t.padAngle=function(e){return arguments.length?(f=\"function\"==typeof e?e:n.i(r.a)(+e),t):f},t}},function(t,e,n){\"use strict\";function r(t,e){return t[e]}var i=n(138),o=n(17),a=n(36),u=n(37);e.a=function(){function t(t){var n,r,i=e.apply(this,arguments),o=t.length,a=i.length,u=new Array(a);for(n=0;n<a;++n){for(var f,p=i[n],h=u[n]=new Array(o),d=0;d<o;++d)h[d]=f=[0,+l(t[d],p,d,t)],f.data=t[d];h.key=p}for(n=0,r=c(u);n<a;++n)u[r[n]].index=n;return s(u,r),u}var e=n.i(o.a)([]),c=u.a,s=a.a,l=r;return t.keys=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(o.a)(i.a.call(r)),t):e},t.value=function(e){return arguments.length?(l=\"function\"==typeof e?e:n.i(o.a)(+e),t):l},t.order=function(e){return arguments.length?(c=null==e?u.a:\"function\"==typeof e?e:n.i(o.a)(i.a.call(e)),t):c},t.offset=function(e){return arguments.length?(s=null==e?a.a:e,t):s},t}},function(t,e,n){\"use strict\";n.d(e,\"b\",function(){return p});var r=n(32),i=n(144),o=n(145),a=n(146),u=n(148),c=n(147),s=n(149),l=n(150),f=n(17),p=[i.a,o.a,a.a,c.a,u.a,s.a,l.a];e.a=function(){function t(){var t;if(a||(a=t=n.i(r.a)()),e.apply(this,arguments).draw(a,+o.apply(this,arguments)),t)return a=null,t+\"\"||null}var e=n.i(f.a)(i.a),o=n.i(f.a)(64),a=null;return t.type=function(r){return arguments.length?(e=\"function\"==typeof r?r:n.i(f.a)(r),t):e},t.size=function(e){return arguments.length?(o=\"function\"==typeof e?e:n.i(f.a)(+e),t):o},t.context=function(e){return arguments.length?(a=null==e?null:e,t):a},t}},function(t,e,n){\"use strict\";function r(t){var e=new Date(t);return isNaN(e)?null:e}var i=n(151),o=n(79),a=+new Date(\"2000-01-01T00:00:00.000Z\")?r:n.i(o.e)(i.b);e.a=a},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.d)/i.b},function(t){return t.getDate()-1});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){var e=t.getTimezoneOffset()*i.d%i.c;e<0&&(e+=i.c),t.setTime(Math.floor((+t-e)/i.c)*i.c+e)},function(t,e){t.setTime(+t+e*i.c)},function(t,e){return(e-t)/i.c},function(t){return t.getHours()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?n.i(r.a)(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):i:null},e.a=i;i.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setTime(Math.floor(t/i.d)*i.d)},function(t,e){t.setTime(+t+e*i.d)},function(t,e){return(e-t)/i.d},function(t){return t.getMinutes()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())},function(t){return t.getMonth()});e.a=i;i.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setTime(Math.floor(t/i.e)*i.e)},function(t,e){t.setTime(+t+e*i.e)},function(t,e){return(e-t)/i.e},function(t){return t.getUTCSeconds()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/i.b},function(t){return t.getUTCDate()-1});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*i.c)},function(t,e){return(e-t)/i.c},function(t){return t.getUTCHours()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n(13),o=n.i(r.a)(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*i.d)},function(t,e){return(e-t)/i.d},function(t){return t.getUTCMinutes()});e.a=o;o.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()});e.a=i;i.range},function(t,e,n){\"use strict\";function r(t){return n.i(i.a)(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+7*e)},function(t,e){return(e-t)/o.a})}n.d(e,\"a\",function(){return a}),n.d(e,\"b\",function(){return u}),n.d(e,\"c\",function(){return l});var i=n(5),o=n(13),a=r(0),u=r(1),c=r(2),s=r(3),l=r(4),f=r(5),p=r(6);a.range,u.range,c.range,s.range,l.range,f.range,p.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n.i(r.a)(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)}):null},e.a=i;i.range},function(t,e,n){\"use strict\";function r(t){return n.i(i.a)(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+7*e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*o.d)/o.a})}n.d(e,\"a\",function(){return a}),n.d(e,\"b\",function(){return u}),n.d(e,\"c\",function(){return l});var i=n(5),o=n(13),a=r(0),u=r(1),c=r(2),s=r(3),l=r(4),f=r(5),p=r(6);a.range,u.range,c.range,s.range,l.range,f.range,p.range},function(t,e,n){\"use strict\";var r=n(5),i=n.i(r.a)(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n.i(r.a)(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)}):null},e.a=i;i.range},function(t,e,n){\"use strict\";function r(t){return t.replace(i,function(t,e){return e.toUpperCase()})}var i=/-(.)/g;t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(t.replace(o,\"ms-\"))}var i=n(329),o=/^-ms-/;t.exports=r},function(t,e,n){\"use strict\";function r(t,e){return!(!t||!e)&&(t===e||!i(t)&&(i(e)?r(t,e.parentNode):\"contains\"in t?t.contains(e):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(e))))}var i=n(339);t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t.length;if((Array.isArray(t)||\"object\"!=typeof t&&\"function\"!=typeof t)&&a(!1),\"number\"!=typeof e&&a(!1),0===e||e-1 in t||a(!1),\"function\"==typeof t.callee&&a(!1),t.hasOwnProperty)try{return Array.prototype.slice.call(t)}catch(t){}for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}function i(t){return!!t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"length\"in t&&!(\"setInterval\"in t)&&\"number\"!=typeof t.nodeType&&(Array.isArray(t)||\"callee\"in t||\"item\"in t)}function o(t){return i(t)?Array.isArray(t)?t.slice():r(t):[t]}var a=n(0);t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=t.match(l);return e&&e[1].toLowerCase()}function i(t,e){var n=s;s||c(!1);var i=r(t),o=i&&u(i);if(o){n.innerHTML=o[1]+t+o[2];for(var l=o[0];l--;)n=n.lastChild}else n.innerHTML=t;var f=n.getElementsByTagName(\"script\");f.length&&(e||c(!1),a(f).forEach(e));for(var p=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return p}var o=n(6),a=n(332),u=n(334),c=n(0),s=o.canUseDOM?document.createElement(\"div\"):null,l=/^\\s*<(\\w+)/;t.exports=i},function(t,e,n){\"use strict\";function r(t){return a||o(!1),p.hasOwnProperty(t)||(t=\"*\"),u.hasOwnProperty(t)||(a.innerHTML=\"*\"===t?\"<link />\":\"<\"+t+\"></\"+t+\">\",u[t]=!a.firstChild),u[t]?p[t]:null}var i=n(6),o=n(0),a=i.canUseDOM?document.createElement(\"div\"):null,u={},c=[1,'<select multiple=\"true\">',\"</select>\"],s=[1,\"<table>\",\"</table>\"],l=[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],f=[1,'<svg xmlns=\"http://www.w3.org/2000/svg\">',\"</svg>\"],p={\"*\":[1,\"?<div>\",\"</div>\"],area:[1,\"<map>\",\"</map>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],param:[1,\"<object>\",\"</object>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],optgroup:c,option:c,caption:s,colgroup:s,tbody:s,tfoot:s,thead:s,td:l,th:l};[\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"g\",\"image\",\"line\",\"linearGradient\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"text\",\"tspan\"].forEach(function(t){p[t]=f,u[t]=!0}),t.exports=r},function(t,e,n){\"use strict\";function r(t){return t.Window&&t instanceof t.Window?{x:t.pageXOffset||t.document.documentElement.scrollLeft,y:t.pageYOffset||t.document.documentElement.scrollTop}:{x:t.scrollLeft,y:t.scrollTop}}t.exports=r},function(t,e,n){\"use strict\";function r(t){return t.replace(i,\"-$1\").toLowerCase()}var i=/([A-Z])/g;t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(t).replace(o,\"-ms-\")}var i=n(336),o=/^ms-/;t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t?t.ownerDocument||t:document,n=e.defaultView||window;return!(!t||!(\"function\"==typeof n.Node?t instanceof n.Node:\"object\"==typeof t&&\"number\"==typeof t.nodeType&&\"string\"==typeof t.nodeName))}t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(t)&&3==t.nodeType}var i=n(338);t.exports=r},function(t,e,n){\"use strict\";var r=function(t){var e;for(e in t)if(t.hasOwnProperty(e))return e;return null};t.exports=r},function(t,e,n){\"use strict\";function r(t){var e={};return function(n){return e.hasOwnProperty(n)||(e[n]=t.call(this,n)),e[n]}}t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r,i){}t.exports=r},function(t,e,n){\"use strict\";function r(){return null}var i=n(3),o=n(344),a=n(342),u=function(){};t.exports=function(t,e){function n(t){var e=t&&(E&&t[E]||t[M]);if(\"function\"==typeof e)return e}function c(t,e){return t===e?0!==t||1/t==1/e:t!==t&&e!==e}function s(t){this.message=t,this.stack=\"\"}function l(t){function n(n,r,i,a,u,c,l){if(a=a||T,c=c||i,l!==o){if(e){var f=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");throw f.name=\"Invariant Violation\",f}}return null==r[i]?n?new s(null===r[i]?\"The \"+u+\" `\"+c+\"` is marked as required in `\"+a+\"`, but its value is `null`.\":\"The \"+u+\" `\"+c+\"` is marked as required in `\"+a+\"`, but its value is `undefined`.\"):null:t(r,i,a,u,c)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function f(t){function e(e,n,r,i,o,a){var u=e[n];if(x(u)!==t)return new s(\"Invalid \"+i+\" `\"+o+\"` of type `\"+w(u)+\"` supplied to `\"+r+\"`, expected `\"+t+\"`.\");return null}return l(e)}function p(t){function e(e,n,r,i,a){if(\"function\"!=typeof t)return new s(\"Property `\"+a+\"` of component `\"+r+\"` has invalid PropType notation inside arrayOf.\");var u=e[n];if(!Array.isArray(u)){return new s(\"Invalid \"+i+\" `\"+a+\"` of type `\"+x(u)+\"` supplied to `\"+r+\"`, expected an array.\")}for(var c=0;c<u.length;c++){var l=t(u,c,r,i,a+\"[\"+c+\"]\",o);if(l instanceof Error)return l}return null}return l(e)}function h(t){function e(e,n,r,i,o){if(!(e[n]instanceof t)){var a=t.name||T;return new s(\"Invalid \"+i+\" `\"+o+\"` of type `\"+k(e[n])+\"` supplied to `\"+r+\"`, expected instance of `\"+a+\"`.\")}return null}return l(e)}function d(t){function e(e,n,r,i,o){for(var a=e[n],u=0;u<t.length;u++)if(c(a,t[u]))return null;return new s(\"Invalid \"+i+\" `\"+o+\"` of value `\"+a+\"` supplied to `\"+r+\"`, expected one of \"+JSON.stringify(t)+\".\")}return Array.isArray(t)?l(e):r}function v(t){function e(e,n,r,i,a){if(\"function\"!=typeof t)return new s(\"Property `\"+a+\"` of component `\"+r+\"` has invalid PropType notation inside objectOf.\");var u=e[n],c=x(u);if(\"object\"!==c)return new s(\"Invalid \"+i+\" `\"+a+\"` of type `\"+c+\"` supplied to `\"+r+\"`, expected an object.\");for(var l in u)if(u.hasOwnProperty(l)){var f=t(u,l,r,i,a+\".\"+l,o);if(f instanceof Error)return f}return null}return l(e)}function g(t){function e(e,n,r,i,a){for(var u=0;u<t.length;u++){if(null==(0,t[u])(e,n,r,i,a,o))return null}return new s(\"Invalid \"+i+\" `\"+a+\"` supplied to `\"+r+\"`.\")}if(!Array.isArray(t))return r;for(var n=0;n<t.length;n++){var i=t[n];if(\"function\"!=typeof i)return u(\"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \"+C(i)+\" at index \"+n+\".\"),r}return l(e)}function m(t){function e(e,n,r,i,a){var u=e[n],c=x(u);if(\"object\"!==c)return new s(\"Invalid \"+i+\" `\"+a+\"` of type `\"+c+\"` supplied to `\"+r+\"`, expected `object`.\");for(var l in t){var f=t[l];if(f){var p=f(u,l,r,i,a+\".\"+l,o);if(p)return p}}return null}return l(e)}function y(t){function e(e,n,r,a,u){var c=e[n],l=x(c);if(\"object\"!==l)return new s(\"Invalid \"+a+\" `\"+u+\"` of type `\"+l+\"` supplied to `\"+r+\"`, expected `object`.\");var f=i({},e[n],t);for(var p in f){var h=t[p];if(!h)return new s(\"Invalid \"+a+\" `\"+u+\"` key `\"+p+\"` supplied to `\"+r+\"`.\\nBad object: \"+JSON.stringify(e[n],null,\"  \")+\"\\nValid keys: \"+JSON.stringify(Object.keys(t),null,\"  \"));var d=h(c,p,r,a,u+\".\"+p,o);if(d)return d}return null}return l(e)}function _(e){switch(typeof e){case\"number\":case\"string\":case\"undefined\":return!0;case\"boolean\":return!e;case\"object\":if(Array.isArray(e))return e.every(_);if(null===e||t(e))return!0;var r=n(e);if(!r)return!1;var i,o=r.call(e);if(r!==e.entries){for(;!(i=o.next()).done;)if(!_(i.value))return!1}else for(;!(i=o.next()).done;){var a=i.value;if(a&&!_(a[1]))return!1}return!0;default:return!1}}function b(t,e){return\"symbol\"===t||(\"Symbol\"===e[\"@@toStringTag\"]||\"function\"==typeof Symbol&&e instanceof Symbol)}function x(t){var e=typeof t;return Array.isArray(t)?\"array\":t instanceof RegExp?\"object\":b(e,t)?\"symbol\":e}function w(t){if(void 0===t||null===t)return\"\"+t;var e=x(t);if(\"object\"===e){if(t instanceof Date)return\"date\";if(t instanceof RegExp)return\"regexp\"}return e}function C(t){var e=w(t);switch(e){case\"array\":case\"object\":return\"an \"+e;case\"boolean\":case\"date\":case\"regexp\":return\"a \"+e;default:return e}}function k(t){return t.constructor&&t.constructor.name?t.constructor.name:T}var E=\"function\"==typeof Symbol&&Symbol.iterator,M=\"@@iterator\",T=\"<<anonymous>>\",S={array:f(\"array\"),bool:f(\"boolean\"),func:f(\"function\"),number:f(\"number\"),object:f(\"object\"),string:f(\"string\"),symbol:f(\"symbol\"),any:function(){return l(r)}(),arrayOf:p,element:function(){function e(e,n,r,i,o){var a=e[n];if(!t(a)){return new s(\"Invalid \"+i+\" `\"+o+\"` of type `\"+x(a)+\"` supplied to `\"+r+\"`, expected a single ReactElement.\")}return null}return l(e)}(),instanceOf:h,node:function(){function t(t,e,n,r,i){return _(t[e])?null:new s(\"Invalid \"+r+\" `\"+i+\"` supplied to `\"+n+\"`, expected a ReactNode.\")}return l(t)}(),objectOf:v,oneOf:d,oneOfType:g,shape:m,exact:y};return s.prototype=Error.prototype,S.checkPropTypes=a,S.PropTypes=S,S}},function(t,e,n){\"use strict\";t.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(t,e,n){\"use strict\";var r={Properties:{\"aria-current\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},DOMAttributeNames:{},DOMPropertyNames:{}};t.exports=r},function(t,e,n){\"use strict\";var r=n(4),i=n(154),o={focusDOMComponent:function(){i(r.getNodeFromInstance(this))}};t.exports=o},function(t,e,n){\"use strict\";function r(t){return(t.ctrlKey||t.altKey||t.metaKey)&&!(t.ctrlKey&&t.altKey)}function i(t){switch(t){case\"topCompositionStart\":return E.compositionStart;case\"topCompositionEnd\":return E.compositionEnd;case\"topCompositionUpdate\":return E.compositionUpdate}}function o(t,e){return\"topKeyDown\"===t&&e.keyCode===y}function a(t,e){switch(t){case\"topKeyUp\":return-1!==m.indexOf(e.keyCode);case\"topKeyDown\":return e.keyCode!==y;case\"topKeyPress\":case\"topMouseDown\":case\"topBlur\":return!0;default:return!1}}function u(t){var e=t.detail;return\"object\"==typeof e&&\"data\"in e?e.data:null}function c(t,e,n,r){var c,s;if(_?c=i(t):T?a(t,n)&&(c=E.compositionEnd):o(t,n)&&(c=E.compositionStart),!c)return null;w&&(T||c!==E.compositionStart?c===E.compositionEnd&&T&&(s=T.getData()):T=d.getPooled(r));var l=v.getPooled(c,e,n,r);if(s)l.data=s;else{var f=u(n);null!==f&&(l.data=f)}return p.accumulateTwoPhaseDispatches(l),l}function s(t,e){switch(t){case\"topCompositionEnd\":return u(e);case\"topKeyPress\":return e.which!==C?null:(M=!0,k);case\"topTextInput\":var n=e.data;return n===k&&M?null:n;default:return null}}function l(t,e){if(T){if(\"topCompositionEnd\"===t||!_&&a(t,e)){var n=T.getData();return d.release(T),T=null,n}return null}switch(t){case\"topPaste\":return null;case\"topKeyPress\":return e.which&&!r(e)?String.fromCharCode(e.which):null;case\"topCompositionEnd\":return w?null:e.data;default:return null}}function f(t,e,n,r){var i;if(!(i=x?s(t,n):l(t,n)))return null;var o=g.getPooled(E.beforeInput,e,n,r);return o.data=i,p.accumulateTwoPhaseDispatches(o),o}var p=n(23),h=n(6),d=n(354),v=n(391),g=n(394),m=[9,13,27,32],y=229,_=h.canUseDOM&&\"CompositionEvent\"in window,b=null;h.canUseDOM&&\"documentMode\"in document&&(b=document.documentMode);var x=h.canUseDOM&&\"TextEvent\"in window&&!b&&!function(){var t=window.opera;return\"object\"==typeof t&&\"function\"==typeof t.version&&parseInt(t.version(),10)<=12}(),w=h.canUseDOM&&(!_||b&&b>8&&b<=11),C=32,k=String.fromCharCode(C),E={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:[\"topBlur\",\"topCompositionEnd\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",captured:\"onCompositionStartCapture\"},dependencies:[\"topBlur\",\"topCompositionStart\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:[\"topBlur\",\"topCompositionUpdate\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]}},M=!1,T=null,S={eventTypes:E,extractEvents:function(t,e,n,r){return[c(t,e,n,r),f(t,e,n,r)]}};t.exports=S},function(t,e,n){\"use strict\";var r=n(158),i=n(6),o=(n(9),n(330),n(400)),a=n(337),u=n(341),c=(n(2),u(function(t){return a(t)})),s=!1,l=\"cssFloat\";if(i.canUseDOM){var f=document.createElement(\"div\").style;try{f.font=\"\"}catch(t){s=!0}void 0===document.documentElement.style.cssFloat&&(l=\"styleFloat\")}var p={createMarkupForStyles:function(t,e){var n=\"\";for(var r in t)if(t.hasOwnProperty(r)){var i=0===r.indexOf(\"--\"),a=t[r];null!=a&&(n+=c(r)+\":\",n+=o(r,a,e,i)+\";\")}return n||null},setValueForStyles:function(t,e,n){var i=t.style;for(var a in e)if(e.hasOwnProperty(a)){var u=0===a.indexOf(\"--\"),c=o(a,e[a],n,u);if(\"float\"!==a&&\"cssFloat\"!==a||(a=l),u)i.setProperty(a,c);else if(c)i[a]=c;else{var f=s&&r.shorthandPropertyExpansions[a];if(f)for(var p in f)i[p]=\"\";else i[a]=\"\"}}}};t.exports=p},function(t,e,n){\"use strict\";function r(t,e,n){var r=M.getPooled(P.change,t,e,n);return r.type=\"change\",w.accumulateTwoPhaseDispatches(r),r}function i(t){var e=t.nodeName&&t.nodeName.toLowerCase();return\"select\"===e||\"input\"===e&&\"file\"===t.type}function o(t){var e=r(I,t,S(t));E.batchedUpdates(a,e)}function a(t){x.enqueueEvents(t),x.processEventQueue(!1)}function u(t,e){O=t,I=e,O.attachEvent(\"onchange\",o)}function c(){O&&(O.detachEvent(\"onchange\",o),O=null,I=null)}function s(t,e){var n=T.updateValueIfChanged(t),r=!0===e.simulated&&L._allowSimulatedPassThrough;if(n||r)return t}function l(t,e){if(\"topChange\"===t)return e}function f(t,e,n){\"topFocus\"===t?(c(),u(e,n)):\"topBlur\"===t&&c()}function p(t,e){O=t,I=e,O.attachEvent(\"onpropertychange\",d)}function h(){O&&(O.detachEvent(\"onpropertychange\",d),O=null,I=null)}function d(t){\"value\"===t.propertyName&&s(I,t)&&o(t)}function v(t,e,n){\"topFocus\"===t?(h(),p(e,n)):\"topBlur\"===t&&h()}function g(t,e,n){if(\"topSelectionChange\"===t||\"topKeyUp\"===t||\"topKeyDown\"===t)return s(I,n)}function m(t){var e=t.nodeName;return e&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t.type||\"radio\"===t.type)}function y(t,e,n){if(\"topClick\"===t)return s(e,n)}function _(t,e,n){if(\"topInput\"===t||\"topChange\"===t)return s(e,n)}function b(t,e){if(null!=t){var n=t._wrapperState||e._wrapperState;if(n&&n.controlled&&\"number\"===e.type){var r=\"\"+e.value;e.getAttribute(\"value\")!==r&&e.setAttribute(\"value\",r)}}}var x=n(22),w=n(23),C=n(6),k=n(4),E=n(12),M=n(14),T=n(173),S=n(94),N=n(95),A=n(175),P={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:[\"topBlur\",\"topChange\",\"topClick\",\"topFocus\",\"topInput\",\"topKeyDown\",\"topKeyUp\",\"topSelectionChange\"]}},O=null,I=null,D=!1;C.canUseDOM&&(D=N(\"change\")&&(!document.documentMode||document.documentMode>8));var R=!1;C.canUseDOM&&(R=N(\"input\")&&(!document.documentMode||document.documentMode>9));var L={eventTypes:P,_allowSimulatedPassThrough:!0,_isInputEventSupported:R,extractEvents:function(t,e,n,o){var a,u,c=e?k.getNodeFromInstance(e):window;if(i(c)?D?a=l:u=f:A(c)?R?a=_:(a=g,u=v):m(c)&&(a=y),a){var s=a(t,e,n);if(s){return r(s,n,o)}}u&&u(t,c,e),\"topBlur\"===t&&b(e,c)}};t.exports=L},function(t,e,n){\"use strict\";var r=n(1),i=n(20),o=n(6),a=n(333),u=n(11),c=(n(0),{dangerouslyReplaceNodeWithMarkup:function(t,e){if(o.canUseDOM||r(\"56\"),e||r(\"57\"),\"HTML\"===t.nodeName&&r(\"58\"),\"string\"==typeof e){var n=a(e,u)[0];t.parentNode.replaceChild(n,t)}else i.replaceChildWithTree(t,e)}});t.exports=c},function(t,e,n){\"use strict\";var r=[\"ResponderEventPlugin\",\"SimpleEventPlugin\",\"TapEventPlugin\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"SelectEventPlugin\",\"BeforeInputEventPlugin\"];t.exports=r},function(t,e,n){\"use strict\";var r=n(23),i=n(4),o=n(54),a={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},u={eventTypes:a,extractEvents:function(t,e,n,u){if(\"topMouseOver\"===t&&(n.relatedTarget||n.fromElement))return null;if(\"topMouseOut\"!==t&&\"topMouseOver\"!==t)return null;var c;if(u.window===u)c=u;else{var s=u.ownerDocument;c=s?s.defaultView||s.parentWindow:window}var l,f;if(\"topMouseOut\"===t){l=e;var p=n.relatedTarget||n.toElement;f=p?i.getClosestInstanceFromNode(p):null}else l=null,f=e;if(l===f)return null;var h=null==l?c:i.getNodeFromInstance(l),d=null==f?c:i.getNodeFromInstance(f),v=o.getPooled(a.mouseLeave,l,n,u);v.type=\"mouseleave\",v.target=h,v.relatedTarget=d;var g=o.getPooled(a.mouseEnter,f,n,u);return g.type=\"mouseenter\",g.target=d,g.relatedTarget=h,r.accumulateEnterLeaveDispatches(v,g,l,f),[v,g]}};t.exports=u},function(t,e,n){\"use strict\";var r={topAbort:null,topAnimationEnd:null,topAnimationIteration:null,topAnimationStart:null,topBlur:null,topCanPlay:null,topCanPlayThrough:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topDurationChange:null,topEmptied:null,topEncrypted:null,topEnded:null,topError:null,topFocus:null,topInput:null,topInvalid:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topLoadedData:null,topLoadedMetadata:null,topLoadStart:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topPause:null,topPlay:null,topPlaying:null,topProgress:null,topRateChange:null,topReset:null,topScroll:null,topSeeked:null,topSeeking:null,topSelectionChange:null,topStalled:null,topSubmit:null,topSuspend:null,topTextInput:null,topTimeUpdate:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topTransitionEnd:null,topVolumeChange:null,topWaiting:null,topWheel:null},i={topLevelTypes:r};t.exports=i},function(t,e,n){\"use strict\";function r(t){this._root=t,this._startText=this.getText(),this._fallbackText=null}var i=n(3),o=n(18),a=n(172);i(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return\"value\"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var t,e,n=this._startText,r=n.length,i=this.getText(),o=i.length;for(t=0;t<r&&n[t]===i[t];t++);var a=r-t;for(e=1;e<=a&&n[r-e]===i[o-e];e++);var u=e>1?1-e:void 0;return this._fallbackText=i.slice(t,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";var r=n(21),i=r.injection.MUST_USE_PROPERTY,o=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,u=r.injection.HAS_POSITIVE_NUMERIC_VALUE,c=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,s={isCustomAttribute:RegExp.prototype.test.bind(new RegExp(\"^(data|aria)-[\"+r.ATTRIBUTE_NAME_CHAR+\"]*$\")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:o,allowTransparency:0,alt:0,as:0,async:o,autoComplete:0,autoPlay:o,capture:o,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:i|o,cite:0,classID:0,className:0,cols:u,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:o,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:o,defer:o,dir:0,disabled:o,download:c,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:o,formTarget:0,frameBorder:0,headers:0,height:0,hidden:o,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:o,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:i|o,muted:i|o,name:0,nonce:0,noValidate:o,open:o,optimum:0,pattern:0,placeholder:0,playsInline:o,poster:0,preload:0,profile:0,radioGroup:0,readOnly:o,referrerPolicy:0,rel:0,required:o,reversed:o,role:0,rows:u,rowSpan:a,sandbox:0,scope:0,scoped:o,scrolling:0,seamless:o,selected:i|o,shape:0,size:u,sizes:0,span:u,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:o,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMPropertyNames:{},DOMMutationMethods:{value:function(t,e){if(null==e)return t.removeAttribute(\"value\");\"number\"!==t.type||!1===t.hasAttribute(\"value\")?t.setAttribute(\"value\",\"\"+e):t.validity&&!t.validity.badInput&&t.ownerDocument.activeElement!==t&&t.setAttribute(\"value\",\"\"+e)}}};t.exports=s},function(t,e,n){\"use strict\";(function(e){function r(t,e,n,r){var i=void 0===t[n];null!=e&&i&&(t[n]=o(e,!0))}var i=n(24),o=n(174),a=(n(85),n(96)),u=n(177);n(2);void 0!==e&&e.env;var c={instantiateChildren:function(t,e,n,i){if(null==t)return null;var o={};return u(t,r,o),o},updateChildren:function(t,e,n,r,u,c,s,l,f){if(e||t){var p,h;for(p in e)if(e.hasOwnProperty(p)){h=t&&t[p];var d=h&&h._currentElement,v=e[p];if(null!=h&&a(d,v))i.receiveComponent(h,v,u,l),e[p]=h;else{h&&(r[p]=i.getHostNode(h),i.unmountComponent(h,!1));var g=o(v,!0);e[p]=g;var m=i.mountComponent(g,u,c,s,l,f);n.push(m)}}for(p in t)!t.hasOwnProperty(p)||e&&e.hasOwnProperty(p)||(h=t[p],r[p]=i.getHostNode(h),i.unmountComponent(h,!1))}},unmountChildren:function(t,e){for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];i.unmountComponent(r,e)}}};t.exports=c}).call(e,n(156))},function(t,e,n){\"use strict\";var r=n(82),i=n(364),o={processChildrenUpdates:i.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};t.exports=o},function(t,e,n){\"use strict\";function r(t){}function i(t){return!(!t.prototype||!t.prototype.isReactComponent)}function o(t){return!(!t.prototype||!t.prototype.isPureReactComponent)}var a=n(1),u=n(3),c=n(26),s=n(87),l=n(15),f=n(88),p=n(39),h=(n(9),n(168)),d=n(24),v=n(51),g=(n(0),n(81)),m=n(96),y=(n(2),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var t=p.get(this)._currentElement.type,e=t(this.props,this.context,this.updater);return e};var _=1,b={construct:function(t){this._currentElement=t,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(t,e,n,u){this._context=u,this._mountOrder=_++,this._hostParent=e,this._hostContainerInfo=n;var s,l=this._currentElement.props,f=this._processContext(u),h=this._currentElement.type,d=t.getUpdateQueue(),g=i(h),m=this._constructComponent(g,l,f,d);g||null!=m&&null!=m.render?o(h)?this._compositeType=y.PureClass:this._compositeType=y.ImpureClass:(s=m,null===m||!1===m||c.isValidElement(m)||a(\"105\",h.displayName||h.name||\"Component\"),m=new r(h),this._compositeType=y.StatelessFunctional);m.props=l,m.context=f,m.refs=v,m.updater=d,this._instance=m,p.set(m,this);var b=m.state;void 0===b&&(m.state=b=null),(\"object\"!=typeof b||Array.isArray(b))&&a(\"106\",this.getName()||\"ReactCompositeComponent\"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var x;return x=m.unstable_handleError?this.performInitialMountWithErrorHandling(s,e,n,t,u):this.performInitialMount(s,e,n,t,u),m.componentDidMount&&t.getReactMountReady().enqueue(m.componentDidMount,m),x},_constructComponent:function(t,e,n,r){return this._constructComponentWithoutOwner(t,e,n,r)},_constructComponentWithoutOwner:function(t,e,n,r){var i=this._currentElement.type;return t?new i(e,n,r):i(e,n,r)},performInitialMountWithErrorHandling:function(t,e,n,r,i){var o,a=r.checkpoint();try{o=this.performInitialMount(t,e,n,r,i)}catch(u){r.rollback(a),this._instance.unstable_handleError(u),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),o=this.performInitialMount(t,e,n,r,i)}return o},performInitialMount:function(t,e,n,r,i){var o=this._instance,a=0;o.componentWillMount&&(o.componentWillMount(),this._pendingStateQueue&&(o.state=this._processPendingState(o.props,o.context))),void 0===t&&(t=this._renderValidatedComponent());var u=h.getType(t);this._renderedNodeType=u;var c=this._instantiateReactComponent(t,u!==h.EMPTY);this._renderedComponent=c;var s=d.mountComponent(c,r,e,n,this._processChildContext(i),a);return s},getHostNode:function(){return d.getHostNode(this._renderedComponent)},unmountComponent:function(t){if(this._renderedComponent){var e=this._instance;if(e.componentWillUnmount&&!e._calledComponentWillUnmount)if(e._calledComponentWillUnmount=!0,t){var n=this.getName()+\".componentWillUnmount()\";f.invokeGuardedCallback(n,e.componentWillUnmount.bind(e))}else e.componentWillUnmount();this._renderedComponent&&(d.unmountComponent(this._renderedComponent,t),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,p.remove(e)}},_maskContext:function(t){var e=this._currentElement.type,n=e.contextTypes;if(!n)return v;var r={};for(var i in n)r[i]=t[i];return r},_processContext:function(t){var e=this._maskContext(t);return e},_processChildContext:function(t){var e,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(e=r.getChildContext()),e){\"object\"!=typeof n.childContextTypes&&a(\"107\",this.getName()||\"ReactCompositeComponent\");for(var i in e)i in n.childContextTypes||a(\"108\",this.getName()||\"ReactCompositeComponent\",i);return u({},t,e)}return t},_checkContextTypes:function(t,e,n){},receiveComponent:function(t,e,n){var r=this._currentElement,i=this._context;this._pendingElement=null,this.updateComponent(e,r,t,i,n)},performUpdateIfNecessary:function(t){null!=this._pendingElement?d.receiveComponent(this,this._pendingElement,t,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(t,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(t,e,n,r,i){var o=this._instance;null==o&&a(\"136\",this.getName()||\"ReactCompositeComponent\");var u,c=!1;this._context===i?u=o.context:(u=this._processContext(i),c=!0);var s=e.props,l=n.props;e!==n&&(c=!0),c&&o.componentWillReceiveProps&&o.componentWillReceiveProps(l,u);var f=this._processPendingState(l,u),p=!0;this._pendingForceUpdate||(o.shouldComponentUpdate?p=o.shouldComponentUpdate(l,f,u):this._compositeType===y.PureClass&&(p=!g(s,l)||!g(o.state,f))),this._updateBatchNumber=null,p?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,f,u,t,i)):(this._currentElement=n,this._context=i,o.props=l,o.state=f,o.context=u)},_processPendingState:function(t,e){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var o=u({},i?r[0]:n.state),a=i?1:0;a<r.length;a++){var c=r[a];u(o,\"function\"==typeof c?c.call(n,o,t,e):c)}return o},_performComponentUpdate:function(t,e,n,r,i,o){var a,u,c,s=this._instance,l=Boolean(s.componentDidUpdate);l&&(a=s.props,u=s.state,c=s.context),s.componentWillUpdate&&s.componentWillUpdate(e,n,r),this._currentElement=t,this._context=o,s.props=e,s.state=n,s.context=r,this._updateRenderedComponent(i,o),l&&i.getReactMountReady().enqueue(s.componentDidUpdate.bind(s,a,u,c),s)},_updateRenderedComponent:function(t,e){var n=this._renderedComponent,r=n._currentElement,i=this._renderValidatedComponent(),o=0;if(m(r,i))d.receiveComponent(n,i,t,this._processChildContext(e));else{var a=d.getHostNode(n);d.unmountComponent(n,!1);var u=h.getType(i);this._renderedNodeType=u;var c=this._instantiateReactComponent(i,u!==h.EMPTY);this._renderedComponent=c;var s=d.mountComponent(c,t,this._hostParent,this._hostContainerInfo,this._processChildContext(e),o);this._replaceNodeWithMarkup(a,s,n)}},_replaceNodeWithMarkup:function(t,e,n){s.replaceNodeWithMarkup(t,e,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var t=this._instance;return t.render()},_renderValidatedComponent:function(){var t;if(this._compositeType!==y.StatelessFunctional){l.current=this;try{t=this._renderValidatedComponentWithoutOwnerOrContext()}finally{l.current=null}}else t=this._renderValidatedComponentWithoutOwnerOrContext();return null===t||!1===t||c.isValidElement(t)||a(\"109\",this.getName()||\"ReactCompositeComponent\"),t},attachRef:function(t,e){var n=this.getPublicInstance();null==n&&a(\"110\");var r=e.getPublicInstance();(n.refs===v?n.refs={}:n.refs)[t]=r},detachRef:function(t){delete this.getPublicInstance().refs[t]},getName:function(){var t=this._currentElement.type,e=this._instance&&this._instance.constructor;return t.displayName||e&&e.displayName||t.name||e&&e.name||null},getPublicInstance:function(){var t=this._instance;return this._compositeType===y.StatelessFunctional?null:t},_instantiateReactComponent:null};t.exports=b},function(t,e,n){\"use strict\";var r=n(4),i=n(372),o=n(167),a=n(24),u=n(12),c=n(385),s=n(401),l=n(171),f=n(408);n(2);i.inject();var p={findDOMNode:s,render:o.render,unmountComponentAtNode:o.unmountComponentAtNode,version:c,unstable_batchedUpdates:u.batchedUpdates,unstable_renderSubtreeIntoContainer:f};\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(t){return t._renderedComponent&&(t=l(t)),t?r.getNodeFromInstance(t):null}},Mount:o,Reconciler:a});t.exports=p},function(t,e,n){\"use strict\";function r(t){if(t){var e=t._currentElement._owner||null;if(e){var n=e.getName();if(n)return\" This DOM node was rendered by `\"+n+\"`.\"}}return\"\"}function i(t,e){e&&($[t._tag]&&(null!=e.children||null!=e.dangerouslySetInnerHTML)&&g(\"137\",t._tag,t._currentElement._owner?\" Check the render method of \"+t._currentElement._owner.getName()+\".\":\"\"),null!=e.dangerouslySetInnerHTML&&(null!=e.children&&g(\"60\"),\"object\"==typeof e.dangerouslySetInnerHTML&&z in e.dangerouslySetInnerHTML||g(\"61\")),null!=e.style&&\"object\"!=typeof e.style&&g(\"62\",r(t)))}function o(t,e,n,r){if(!(r instanceof D)){var i=t._hostContainerInfo,o=i._node&&i._node.nodeType===q,u=o?i._node:i._ownerDocument;B(e,u),r.getReactMountReady().enqueue(a,{inst:t,registrationName:e,listener:n})}}function a(){var t=this;k.putListener(t.inst,t.registrationName,t.listener)}function u(){var t=this;N.postMountWrapper(t)}function c(){var t=this;O.postMountWrapper(t)}function s(){var t=this;A.postMountWrapper(t)}function l(){L.track(this)}function f(){var t=this;t._rootNodeID||g(\"63\");var e=j(t);switch(e||g(\"64\"),t._tag){case\"iframe\":case\"object\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topLoad\",\"load\",e)];break;case\"video\":case\"audio\":t._wrapperState.listeners=[];for(var n in Y)Y.hasOwnProperty(n)&&t._wrapperState.listeners.push(M.trapBubbledEvent(n,Y[n],e));break;case\"source\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topError\",\"error\",e)];break;case\"img\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topError\",\"error\",e),M.trapBubbledEvent(\"topLoad\",\"load\",e)];break;case\"form\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topReset\",\"reset\",e),M.trapBubbledEvent(\"topSubmit\",\"submit\",e)];break;case\"input\":case\"select\":case\"textarea\":t._wrapperState.listeners=[M.trapBubbledEvent(\"topInvalid\",\"invalid\",e)]}}function p(){P.postUpdateWrapper(this)}function h(t){Z.call(Q,t)||(X.test(t)||g(\"65\",t),Q[t]=!0)}function d(t,e){return t.indexOf(\"-\")>=0||null!=e.is}function v(t){var e=t.type;h(e),this._currentElement=t,this._tag=e.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var g=n(1),m=n(3),y=n(346),_=n(348),b=n(20),x=n(83),w=n(21),C=n(160),k=n(22),E=n(84),M=n(53),T=n(161),S=n(4),N=n(365),A=n(366),P=n(162),O=n(369),I=(n(9),n(378)),D=n(383),R=(n(11),n(56)),L=(n(0),n(95),n(81),n(173)),U=(n(97),n(2),T),F=k.deleteListener,j=S.getNodeFromInstance,B=M.listenTo,V=E.registrationNameModules,W={string:!0,number:!0},z=\"__html\",H={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},q=11,Y={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\"},K={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},G={listing:!0,pre:!0,textarea:!0},$=m({menuitem:!0},K),X=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Q={},Z={}.hasOwnProperty,J=1;v.displayName=\"ReactDOMComponent\",v.Mixin={mountComponent:function(t,e,n,r){this._rootNodeID=J++,this._domID=n._idCounter++,this._hostParent=e,this._hostContainerInfo=n;var o=this._currentElement.props;switch(this._tag){case\"audio\":case\"form\":case\"iframe\":case\"img\":case\"link\":case\"object\":case\"source\":case\"video\":this._wrapperState={listeners:null},t.getReactMountReady().enqueue(f,this);break;case\"input\":N.mountWrapper(this,o,e),o=N.getHostProps(this,o),t.getReactMountReady().enqueue(l,this),t.getReactMountReady().enqueue(f,this);break;case\"option\":A.mountWrapper(this,o,e),o=A.getHostProps(this,o);break;case\"select\":P.mountWrapper(this,o,e),o=P.getHostProps(this,o),t.getReactMountReady().enqueue(f,this);break;case\"textarea\":O.mountWrapper(this,o,e),o=O.getHostProps(this,o),t.getReactMountReady().enqueue(l,this),t.getReactMountReady().enqueue(f,this)}i(this,o);var a,p;null!=e?(a=e._namespaceURI,p=e._tag):n._tag&&(a=n._namespaceURI,p=n._tag),(null==a||a===x.svg&&\"foreignobject\"===p)&&(a=x.html),a===x.html&&(\"svg\"===this._tag?a=x.svg:\"math\"===this._tag&&(a=x.mathml)),this._namespaceURI=a;var h;if(t.useCreateElement){var d,v=n._ownerDocument;if(a===x.html)if(\"script\"===this._tag){var g=v.createElement(\"div\"),m=this._currentElement.type;g.innerHTML=\"<\"+m+\"></\"+m+\">\",d=g.removeChild(g.firstChild)}else d=o.is?v.createElement(this._currentElement.type,o.is):v.createElement(this._currentElement.type);else d=v.createElementNS(a,this._currentElement.type);S.precacheNode(this,d),this._flags|=U.hasCachedChildNodes,this._hostParent||C.setAttributeForRoot(d),this._updateDOMProperties(null,o,t);var _=b(d);this._createInitialChildren(t,o,r,_),h=_}else{var w=this._createOpenTagMarkupAndPutListeners(t,o),k=this._createContentMarkup(t,o,r);h=!k&&K[this._tag]?w+\"/>\":w+\">\"+k+\"</\"+this._currentElement.type+\">\"}switch(this._tag){case\"input\":t.getReactMountReady().enqueue(u,this),o.autoFocus&&t.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case\"textarea\":t.getReactMountReady().enqueue(c,this),o.autoFocus&&t.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case\"select\":case\"button\":o.autoFocus&&t.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case\"option\":t.getReactMountReady().enqueue(s,this)}return h},_createOpenTagMarkupAndPutListeners:function(t,e){var n=\"<\"+this._currentElement.type;for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];if(null!=i)if(V.hasOwnProperty(r))i&&o(this,r,i,t);else{\"style\"===r&&(i&&(i=this._previousStyleCopy=m({},e.style)),i=_.createMarkupForStyles(i,this));var a=null;null!=this._tag&&d(this._tag,e)?H.hasOwnProperty(r)||(a=C.createMarkupForCustomAttribute(r,i)):a=C.createMarkupForProperty(r,i),a&&(n+=\" \"+a)}}return t.renderToStaticMarkup?n:(this._hostParent||(n+=\" \"+C.createMarkupForRoot()),n+=\" \"+C.createMarkupForID(this._domID))},_createContentMarkup:function(t,e,n){var r=\"\",i=e.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=W[typeof e.children]?e.children:null,a=null!=o?null:e.children;if(null!=o)r=R(o);else if(null!=a){var u=this.mountChildren(a,t,n);r=u.join(\"\")}}return G[this._tag]&&\"\\n\"===r.charAt(0)?\"\\n\"+r:r},_createInitialChildren:function(t,e,n,r){var i=e.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&b.queueHTML(r,i.__html);else{var o=W[typeof e.children]?e.children:null,a=null!=o?null:e.children;if(null!=o)\"\"!==o&&b.queueText(r,o);else if(null!=a)for(var u=this.mountChildren(a,t,n),c=0;c<u.length;c++)b.queueChild(r,u[c])}},receiveComponent:function(t,e,n){var r=this._currentElement;this._currentElement=t,this.updateComponent(e,r,t,n)},updateComponent:function(t,e,n,r){var o=e.props,a=this._currentElement.props;switch(this._tag){case\"input\":o=N.getHostProps(this,o),a=N.getHostProps(this,a);break;case\"option\":o=A.getHostProps(this,o),a=A.getHostProps(this,a);break;case\"select\":o=P.getHostProps(this,o),a=P.getHostProps(this,a);break;case\"textarea\":o=O.getHostProps(this,o),a=O.getHostProps(this,a)}switch(i(this,a),this._updateDOMProperties(o,a,t),this._updateDOMChildren(o,a,t,r),this._tag){case\"input\":N.updateWrapper(this),L.updateValueIfChanged(this);break;case\"textarea\":O.updateWrapper(this);break;case\"select\":t.getReactMountReady().enqueue(p,this)}},_updateDOMProperties:function(t,e,n){var r,i,a;for(r in t)if(!e.hasOwnProperty(r)&&t.hasOwnProperty(r)&&null!=t[r])if(\"style\"===r){var u=this._previousStyleCopy;for(i in u)u.hasOwnProperty(i)&&(a=a||{},a[i]=\"\");this._previousStyleCopy=null}else V.hasOwnProperty(r)?t[r]&&F(this,r):d(this._tag,t)?H.hasOwnProperty(r)||C.deleteValueForAttribute(j(this),r):(w.properties[r]||w.isCustomAttribute(r))&&C.deleteValueForProperty(j(this),r);for(r in e){var c=e[r],s=\"style\"===r?this._previousStyleCopy:null!=t?t[r]:void 0;if(e.hasOwnProperty(r)&&c!==s&&(null!=c||null!=s))if(\"style\"===r)if(c?c=this._previousStyleCopy=m({},c):this._previousStyleCopy=null,s){for(i in s)!s.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(a=a||{},a[i]=\"\");for(i in c)c.hasOwnProperty(i)&&s[i]!==c[i]&&(a=a||{},a[i]=c[i])}else a=c;else if(V.hasOwnProperty(r))c?o(this,r,c,n):s&&F(this,r);else if(d(this._tag,e))H.hasOwnProperty(r)||C.setValueForAttribute(j(this),r,c);else if(w.properties[r]||w.isCustomAttribute(r)){var l=j(this);null!=c?C.setValueForProperty(l,r,c):C.deleteValueForProperty(l,r)}}a&&_.setValueForStyles(j(this),a,this)},_updateDOMChildren:function(t,e,n,r){var i=W[typeof t.children]?t.children:null,o=W[typeof e.children]?e.children:null,a=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,c=null!=i?null:t.children,s=null!=o?null:e.children,l=null!=i||null!=a,f=null!=o||null!=u;null!=c&&null==s?this.updateChildren(null,n,r):l&&!f&&this.updateTextContent(\"\"),null!=o?i!==o&&this.updateTextContent(\"\"+o):null!=u?a!==u&&this.updateMarkup(\"\"+u):null!=s&&this.updateChildren(s,n,r)},getHostNode:function(){return j(this)},unmountComponent:function(t){switch(this._tag){case\"audio\":case\"form\":case\"iframe\":case\"img\":case\"link\":case\"object\":case\"source\":case\"video\":var e=this._wrapperState.listeners;if(e)for(var n=0;n<e.length;n++)e[n].remove();break;case\"input\":case\"textarea\":L.stopTracking(this);break;case\"html\":case\"head\":case\"body\":g(\"66\",this._tag)}this.unmountChildren(t),S.uncacheNode(this),k.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return j(this)}},m(v.prototype,v.Mixin,I.Mixin),t.exports=v},function(t,e,n){\"use strict\";function r(t,e){var n={_topLevelWrapper:t,_idCounter:1,_ownerDocument:e?e.nodeType===i?e:e.ownerDocument:null,_node:e,_tag:e?e.nodeName.toLowerCase():null,_namespaceURI:e?e.namespaceURI:null};return n}var i=(n(97),9);t.exports=r},function(t,e,n){\"use strict\";var r=n(3),i=n(20),o=n(4),a=function(t){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(t,e,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=e,this._hostContainerInfo=n;var u=\" react-empty: \"+this._domID+\" \";if(t.useCreateElement){var c=n._ownerDocument,s=c.createComment(u);return o.precacheNode(this,s),i(s)}return t.renderToStaticMarkup?\"\":\"\\x3c!--\"+u+\"--\\x3e\"},receiveComponent:function(){},getHostNode:function(){return o.getNodeFromInstance(this)},unmountComponent:function(){o.uncacheNode(this)}}),t.exports=a},function(t,e,n){\"use strict\";var r={useCreateElement:!0,useFiber:!1};t.exports=r},function(t,e,n){\"use strict\";var r=n(82),i=n(4),o={dangerouslyProcessChildrenUpdates:function(t,e){var n=i.getNodeFromInstance(t);r.processUpdates(n,e)}};t.exports=o},function(t,e,n){\"use strict\";function r(){this._rootNodeID&&p.updateWrapper(this)}function i(t){return\"checkbox\"===t.type||\"radio\"===t.type?null!=t.checked:null!=t.value}function o(t){var e=this._currentElement.props,n=s.executeOnChange(e,t);f.asap(r,this);var i=e.name;if(\"radio\"===e.type&&null!=i){for(var o=l.getNodeFromInstance(this),u=o;u.parentNode;)u=u.parentNode;for(var c=u.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+i)+'][type=\"radio\"]'),p=0;p<c.length;p++){var h=c[p];if(h!==o&&h.form===o.form){var d=l.getInstanceFromNode(h);d||a(\"90\"),f.asap(r,d)}}}return n}var a=n(1),u=n(3),c=n(160),s=n(86),l=n(4),f=n(12),p=(n(0),n(2),{getHostProps:function(t,e){var n=s.getValue(e),r=s.getChecked(e);return u({type:void 0,step:void 0,min:void 0,max:void 0},e,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:t._wrapperState.initialValue,checked:null!=r?r:t._wrapperState.initialChecked,onChange:t._wrapperState.onChange})},mountWrapper:function(t,e){var n=e.defaultValue;t._wrapperState={initialChecked:null!=e.checked?e.checked:e.defaultChecked,initialValue:null!=e.value?e.value:n,listeners:null,onChange:o.bind(t),controlled:i(e)}},updateWrapper:function(t){var e=t._currentElement.props,n=e.checked;null!=n&&c.setValueForProperty(l.getNodeFromInstance(t),\"checked\",n||!1);var r=l.getNodeFromInstance(t),i=s.getValue(e);if(null!=i)if(0===i&&\"\"===r.value)r.value=\"0\";else if(\"number\"===e.type){var o=parseFloat(r.value,10)||0;(i!=o||i==o&&r.value!=i)&&(r.value=\"\"+i)}else r.value!==\"\"+i&&(r.value=\"\"+i);else null==e.value&&null!=e.defaultValue&&r.defaultValue!==\"\"+e.defaultValue&&(r.defaultValue=\"\"+e.defaultValue),null==e.checked&&null!=e.defaultChecked&&(r.defaultChecked=!!e.defaultChecked)},postMountWrapper:function(t){var e=t._currentElement.props,n=l.getNodeFromInstance(t);switch(e.type){case\"submit\":case\"reset\":break;case\"color\":case\"date\":case\"datetime\":case\"datetime-local\":case\"month\":case\"time\":case\"week\":n.value=\"\",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;\"\"!==r&&(n.name=\"\"),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,\"\"!==r&&(n.name=r)}});t.exports=p},function(t,e,n){\"use strict\";function r(t){var e=\"\";return o.Children.forEach(t,function(t){null!=t&&(\"string\"==typeof t||\"number\"==typeof t?e+=t:c||(c=!0))}),e}var i=n(3),o=n(26),a=n(4),u=n(162),c=(n(2),!1),s={mountWrapper:function(t,e,n){var i=null;if(null!=n){var o=n;\"optgroup\"===o._tag&&(o=o._hostParent),null!=o&&\"select\"===o._tag&&(i=u.getSelectValueContext(o))}var a=null;if(null!=i){var c;if(c=null!=e.value?e.value+\"\":r(e.children),a=!1,Array.isArray(i)){for(var s=0;s<i.length;s++)if(\"\"+i[s]===c){a=!0;break}}else a=\"\"+i===c}t._wrapperState={selected:a}},postMountWrapper:function(t){var e=t._currentElement.props;if(null!=e.value){a.getNodeFromInstance(t).setAttribute(\"value\",e.value)}},getHostProps:function(t,e){var n=i({selected:void 0,children:void 0},e);null!=t._wrapperState.selected&&(n.selected=t._wrapperState.selected);var o=r(e.children);return o&&(n.children=o),n}};t.exports=s},function(t,e,n){\"use strict\";function r(t,e,n,r){return t===n&&e===r}function i(t){var e=document.selection,n=e.createRange(),r=n.text.length,i=n.duplicate();i.moveToElementText(t),i.setEndPoint(\"EndToStart\",n);var o=i.text.length;return{start:o,end:o+r}}function o(t){var e=window.getSelection&&window.getSelection();if(!e||0===e.rangeCount)return null;var n=e.anchorNode,i=e.anchorOffset,o=e.focusNode,a=e.focusOffset,u=e.getRangeAt(0);try{u.startContainer.nodeType,u.endContainer.nodeType}catch(t){return null}var c=r(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset),s=c?0:u.toString().length,l=u.cloneRange();l.selectNodeContents(t),l.setEnd(u.startContainer,u.startOffset);var f=r(l.startContainer,l.startOffset,l.endContainer,l.endOffset),p=f?0:l.toString().length,h=p+s,d=document.createRange();d.setStart(n,i),d.setEnd(o,a);var v=d.collapsed;return{start:v?h:p,end:v?p:h}}function a(t,e){var n,r,i=document.selection.createRange().duplicate();void 0===e.end?(n=e.start,r=n):e.start>e.end?(n=e.end,r=e.start):(n=e.start,r=e.end),i.moveToElementText(t),i.moveStart(\"character\",n),i.setEndPoint(\"EndToStart\",i),i.moveEnd(\"character\",r-n),i.select()}function u(t,e){if(window.getSelection){var n=window.getSelection(),r=t[l()].length,i=Math.min(e.start,r),o=void 0===e.end?i:Math.min(e.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var u=s(t,i),c=s(t,o);if(u&&c){var f=document.createRange();f.setStart(u.node,u.offset),n.removeAllRanges(),i>o?(n.addRange(f),n.extend(c.node,c.offset)):(f.setEnd(c.node,c.offset),n.addRange(f))}}}var c=n(6),s=n(405),l=n(172),f=c.canUseDOM&&\"selection\"in document&&!(\"getSelection\"in window),p={getOffsets:f?i:o,setOffsets:f?a:u};t.exports=p},function(t,e,n){\"use strict\";var r=n(1),i=n(3),o=n(82),a=n(20),u=n(4),c=n(56),s=(n(0),n(97),function(t){this._currentElement=t,this._stringText=\"\"+t,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});i(s.prototype,{mountComponent:function(t,e,n,r){var i=n._idCounter++,o=\" react-text: \"+i+\" \";if(this._domID=i,this._hostParent=e,t.useCreateElement){var s=n._ownerDocument,l=s.createComment(o),f=s.createComment(\" /react-text \"),p=a(s.createDocumentFragment());return a.queueChild(p,a(l)),this._stringText&&a.queueChild(p,a(s.createTextNode(this._stringText))),a.queueChild(p,a(f)),u.precacheNode(this,l),this._closingComment=f,p}var h=c(this._stringText);return t.renderToStaticMarkup?h:\"\\x3c!--\"+o+\"--\\x3e\"+h+\"\\x3c!-- /react-text --\\x3e\"},receiveComponent:function(t,e){if(t!==this._currentElement){this._currentElement=t;var n=\"\"+t;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();o.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var t=this._commentNodes;if(t)return t;if(!this._closingComment)for(var e=u.getNodeFromInstance(this),n=e.nextSibling;;){if(null==n&&r(\"67\",this._domID),8===n.nodeType&&\" /react-text \"===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return t=[this._hostNode,this._closingComment],this._commentNodes=t,t},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,u.uncacheNode(this)}}),t.exports=s},function(t,e,n){\"use strict\";function r(){this._rootNodeID&&l.updateWrapper(this)}function i(t){var e=this._currentElement.props,n=u.executeOnChange(e,t);return s.asap(r,this),n}var o=n(1),a=n(3),u=n(86),c=n(4),s=n(12),l=(n(0),n(2),{getHostProps:function(t,e){return null!=e.dangerouslySetInnerHTML&&o(\"91\"),a({},e,{value:void 0,defaultValue:void 0,children:\"\"+t._wrapperState.initialValue,onChange:t._wrapperState.onChange})},mountWrapper:function(t,e){var n=u.getValue(e),r=n;if(null==n){var a=e.defaultValue,c=e.children;null!=c&&(null!=a&&o(\"92\"),Array.isArray(c)&&(c.length<=1||o(\"93\"),c=c[0]),a=\"\"+c),null==a&&(a=\"\"),r=a}t._wrapperState={initialValue:\"\"+r,listeners:null,onChange:i.bind(t)}},updateWrapper:function(t){var e=t._currentElement.props,n=c.getNodeFromInstance(t),r=u.getValue(e);if(null!=r){var i=\"\"+r;i!==n.value&&(n.value=i),null==e.defaultValue&&(n.defaultValue=i)}null!=e.defaultValue&&(n.defaultValue=e.defaultValue)},postMountWrapper:function(t){var e=c.getNodeFromInstance(t),n=e.textContent;n===t._wrapperState.initialValue&&(e.value=n)}});t.exports=l},function(t,e,n){\"use strict\";function r(t,e){\"_hostNode\"in t||c(\"33\"),\"_hostNode\"in e||c(\"33\");for(var n=0,r=t;r;r=r._hostParent)n++;for(var i=0,o=e;o;o=o._hostParent)i++;for(;n-i>0;)t=t._hostParent,n--;for(;i-n>0;)e=e._hostParent,i--;for(var a=n;a--;){if(t===e)return t;t=t._hostParent,e=e._hostParent}return null}function i(t,e){\"_hostNode\"in t||c(\"35\"),\"_hostNode\"in e||c(\"35\");for(;e;){if(e===t)return!0;e=e._hostParent}return!1}function o(t){return\"_hostNode\"in t||c(\"36\"),t._hostParent}function a(t,e,n){for(var r=[];t;)r.push(t),t=t._hostParent;var i;for(i=r.length;i-- >0;)e(r[i],\"captured\",n);for(i=0;i<r.length;i++)e(r[i],\"bubbled\",n)}function u(t,e,n,i,o){for(var a=t&&e?r(t,e):null,u=[];t&&t!==a;)u.push(t),t=t._hostParent;for(var c=[];e&&e!==a;)c.push(e),e=e._hostParent;var s;for(s=0;s<u.length;s++)n(u[s],\"bubbled\",i);for(s=c.length;s-- >0;)n(c[s],\"captured\",o)}var c=n(1);n(0);t.exports={isAncestor:i,getLowestCommonAncestor:r,getParentInstance:o,traverseTwoPhase:a,traverseEnterLeave:u}},function(t,e,n){\"use strict\";function r(){this.reinitializeTransaction()}var i=n(3),o=n(12),a=n(55),u=n(11),c={initialize:u,close:function(){p.isBatchingUpdates=!1}},s={initialize:u,close:o.flushBatchedUpdates.bind(o)},l=[s,c];i(r.prototype,a,{getTransactionWrappers:function(){return l}});var f=new r,p={isBatchingUpdates:!1,batchedUpdates:function(t,e,n,r,i,o){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?t(e,n,r,i,o):f.perform(t,null,e,n,r,i,o)}};t.exports=p},function(t,e,n){\"use strict\";function r(){C||(C=!0,y.EventEmitter.injectReactEventListener(m),y.EventPluginHub.injectEventPluginOrder(u),y.EventPluginUtils.injectComponentTree(p),y.EventPluginUtils.injectTreeTraversal(d),y.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:c,ChangeEventPlugin:a,SelectEventPlugin:x,BeforeInputEventPlugin:o}),y.HostComponent.injectGenericComponentClass(f),y.HostComponent.injectTextComponentClass(v),y.DOMProperty.injectDOMPropertyConfig(i),y.DOMProperty.injectDOMPropertyConfig(s),y.DOMProperty.injectDOMPropertyConfig(b),y.EmptyComponent.injectEmptyComponentFactory(function(t){return new h(t)}),y.Updates.injectReconcileTransaction(_),y.Updates.injectBatchingStrategy(g),y.Component.injectEnvironment(l))}var i=n(345),o=n(347),a=n(349),u=n(351),c=n(352),s=n(355),l=n(357),f=n(360),p=n(4),h=n(362),d=n(370),v=n(368),g=n(371),m=n(375),y=n(376),_=n(381),b=n(386),x=n(387),w=n(388),C=!1;t.exports={inject:r}},function(t,e,n){\"use strict\";var r=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;t.exports=r},function(t,e,n){\"use strict\";function r(t){i.enqueueEvents(t),i.processEventQueue(!1)}var i=n(22),o={handleTopLevel:function(t,e,n,o){r(i.extractEvents(t,e,n,o))}};t.exports=o},function(t,e,n){\"use strict\";function r(t){for(;t._hostParent;)t=t._hostParent;var e=f.getNodeFromInstance(t),n=e.parentNode;return f.getClosestInstanceFromNode(n)}function i(t,e){this.topLevelType=t,this.nativeEvent=e,this.ancestors=[]}function o(t){var e=h(t.nativeEvent),n=f.getClosestInstanceFromNode(e),i=n;do{t.ancestors.push(i),i=i&&r(i)}while(i);for(var o=0;o<t.ancestors.length;o++)n=t.ancestors[o],v._handleTopLevel(t.topLevelType,n,t.nativeEvent,h(t.nativeEvent))}function a(t){t(d(window))}var u=n(3),c=n(153),s=n(6),l=n(18),f=n(4),p=n(12),h=n(94),d=n(335);u(i.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(i,l.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(t){v._handleTopLevel=t},setEnabled:function(t){v._enabled=!!t},isEnabled:function(){return v._enabled},trapBubbledEvent:function(t,e,n){return n?c.listen(n,e,v.dispatchEvent.bind(null,t)):null},trapCapturedEvent:function(t,e,n){return n?c.capture(n,e,v.dispatchEvent.bind(null,t)):null},monitorScrollValue:function(t){var e=a.bind(null,t);c.listen(window,\"scroll\",e)},dispatchEvent:function(t,e){if(v._enabled){var n=i.getPooled(t,e);try{p.batchedUpdates(o,n)}finally{i.release(n)}}}};t.exports=v},function(t,e,n){\"use strict\";var r=n(21),i=n(22),o=n(52),a=n(87),u=n(163),c=n(53),s=n(165),l=n(12),f={Component:a.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:i.injection,EventPluginUtils:o.injection,EventEmitter:c.injection,HostComponent:s.injection,Updates:l.injection};t.exports=f},function(t,e,n){\"use strict\";var r=n(399),i=/\\/?>/,o=/^<\\!\\-\\-/,a={CHECKSUM_ATTR_NAME:\"data-react-checksum\",addChecksumToMarkup:function(t){var e=r(t);return o.test(t)?t:t.replace(i,\" \"+a.CHECKSUM_ATTR_NAME+'=\"'+e+'\"$&')},canReuseMarkup:function(t,e){var n=e.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(t)===n}};t.exports=a},function(t,e,n){\"use strict\";function r(t,e,n){return{type:\"INSERT_MARKUP\",content:t,fromIndex:null,fromNode:null,toIndex:n,afterNode:e}}function i(t,e,n){return{type:\"MOVE_EXISTING\",content:null,fromIndex:t._mountIndex,fromNode:p.getHostNode(t),toIndex:n,afterNode:e}}function o(t,e){return{type:\"REMOVE_NODE\",content:null,fromIndex:t._mountIndex,fromNode:e,toIndex:null,afterNode:null}}function a(t){return{type:\"SET_MARKUP\",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(t){return{type:\"TEXT_CONTENT\",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function c(t,e){return e&&(t=t||[],t.push(e)),t}function s(t,e){f.processChildrenUpdates(t,e)}var l=n(1),f=n(87),p=(n(39),n(9),n(15),n(24)),h=n(356),d=(n(11),n(402)),v=(n(0),{Mixin:{_reconcilerInstantiateChildren:function(t,e,n){return h.instantiateChildren(t,e,n)},_reconcilerUpdateChildren:function(t,e,n,r,i,o){var a,u=0;return a=d(e,u),h.updateChildren(t,a,n,r,i,this,this._hostContainerInfo,o,u),a},mountChildren:function(t,e,n){var r=this._reconcilerInstantiateChildren(t,e,n);this._renderedChildren=r;var i=[],o=0;for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],c=0,s=p.mountComponent(u,e,this,this._hostContainerInfo,n,c);u._mountIndex=o++,i.push(s)}return i},updateTextContent:function(t){var e=this._renderedChildren;h.unmountChildren(e,!1);for(var n in e)e.hasOwnProperty(n)&&l(\"118\");s(this,[u(t)])},updateMarkup:function(t){var e=this._renderedChildren;h.unmountChildren(e,!1);for(var n in e)e.hasOwnProperty(n)&&l(\"118\");s(this,[a(t)])},updateChildren:function(t,e,n){this._updateChildren(t,e,n)},_updateChildren:function(t,e,n){var r=this._renderedChildren,i={},o=[],a=this._reconcilerUpdateChildren(r,t,o,i,e,n);if(a||r){var u,l=null,f=0,h=0,d=0,v=null;for(u in a)if(a.hasOwnProperty(u)){var g=r&&r[u],m=a[u];g===m?(l=c(l,this.moveChild(g,v,f,h)),h=Math.max(g._mountIndex,h),g._mountIndex=f):(g&&(h=Math.max(g._mountIndex,h)),l=c(l,this._mountChildAtIndex(m,o[d],v,f,e,n)),d++),f++,v=p.getHostNode(m)}for(u in i)i.hasOwnProperty(u)&&(l=c(l,this._unmountChild(r[u],i[u])));l&&s(this,l),this._renderedChildren=a}},unmountChildren:function(t){var e=this._renderedChildren;h.unmountChildren(e,t),this._renderedChildren=null},moveChild:function(t,e,n,r){if(t._mountIndex<r)return i(t,e,n)},createChild:function(t,e,n){return r(n,e,t._mountIndex)},removeChild:function(t,e){return o(t,e)},_mountChildAtIndex:function(t,e,n,r,i,o){return t._mountIndex=r,this.createChild(t,n,e)},_unmountChild:function(t,e){var n=this.removeChild(t,e);return t._mountIndex=null,n}}});t.exports=v},function(t,e,n){\"use strict\";function r(t){return!(!t||\"function\"!=typeof t.attachRef||\"function\"!=typeof t.detachRef)}var i=n(1),o=(n(0),{addComponentAsRefTo:function(t,e,n){r(n)||i(\"119\"),n.attachRef(e,t)},removeComponentAsRefFrom:function(t,e,n){r(n)||i(\"120\");var o=n.getPublicInstance();o&&o.refs[e]===t.getPublicInstance()&&n.detachRef(e)}});t.exports=o},function(t,e,n){\"use strict\";t.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(t,e,n){\"use strict\";function r(t){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=t}var i=n(3),o=n(159),a=n(18),u=n(53),c=n(166),s=(n(9),n(55)),l=n(89),f={initialize:c.getSelectionInformation,close:c.restoreSelection},p={initialize:function(){var t=u.isEnabled();return u.setEnabled(!1),t},close:function(t){u.setEnabled(t)}},h={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},d=[f,p,h],v={getTransactionWrappers:function(){return d},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(t){this.reactMountReady.rollback(t)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};i(r.prototype,s,v),a.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n){\"function\"==typeof t?t(e.getPublicInstance()):o.addComponentAsRefTo(e,t,n)}function i(t,e,n){\"function\"==typeof t?t(null):o.removeComponentAsRefFrom(e,t,n)}var o=n(379),a={};a.attachRefs=function(t,e){if(null!==e&&\"object\"==typeof e){var n=e.ref;null!=n&&r(n,t,e._owner)}},a.shouldUpdateRefs=function(t,e){var n=null,r=null;null!==t&&\"object\"==typeof t&&(n=t.ref,r=t._owner);var i=null,o=null;return null!==e&&\"object\"==typeof e&&(i=e.ref,o=e._owner),n!==i||\"string\"==typeof i&&o!==r},a.detachRefs=function(t,e){if(null!==e&&\"object\"==typeof e){var n=e.ref;null!=n&&i(n,t,e._owner)}},t.exports=a},function(t,e,n){\"use strict\";function r(t){this.reinitializeTransaction(),this.renderToStaticMarkup=t,this.useCreateElement=!1,this.updateQueue=new u(this)}var i=n(3),o=n(18),a=n(55),u=(n(9),n(384)),c=[],s={enqueue:function(){}},l={getTransactionWrappers:function(){return c},getReactMountReady:function(){return s},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};i(r.prototype,a,l),o.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var i=n(89),o=(n(2),function(){function t(e){r(this,t),this.transaction=e}return t.prototype.isMounted=function(t){return!1},t.prototype.enqueueCallback=function(t,e,n){this.transaction.isInTransaction()&&i.enqueueCallback(t,e,n)},t.prototype.enqueueForceUpdate=function(t){this.transaction.isInTransaction()&&i.enqueueForceUpdate(t)},t.prototype.enqueueReplaceState=function(t,e){this.transaction.isInTransaction()&&i.enqueueReplaceState(t,e)},t.prototype.enqueueSetState=function(t,e){this.transaction.isInTransaction()&&i.enqueueSetState(t,e)},t}());t.exports=o},function(t,e,n){\"use strict\";t.exports=\"15.6.2\"},function(t,e,n){\"use strict\";var r={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},i={accentHeight:\"accent-height\",accumulate:0,additive:0,alignmentBaseline:\"alignment-baseline\",allowReorder:\"allowReorder\",alphabetic:0,amplitude:0,arabicForm:\"arabic-form\",ascent:0,attributeName:\"attributeName\",attributeType:\"attributeType\",autoReverse:\"autoReverse\",azimuth:0,baseFrequency:\"baseFrequency\",baseProfile:\"baseProfile\",baselineShift:\"baseline-shift\",bbox:0,begin:0,bias:0,by:0,calcMode:\"calcMode\",capHeight:\"cap-height\",clip:0,clipPath:\"clip-path\",clipRule:\"clip-rule\",clipPathUnits:\"clipPathUnits\",colorInterpolation:\"color-interpolation\",colorInterpolationFilters:\"color-interpolation-filters\",colorProfile:\"color-profile\",colorRendering:\"color-rendering\",contentScriptType:\"contentScriptType\",contentStyleType:\"contentStyleType\",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:\"diffuseConstant\",direction:0,display:0,divisor:0,dominantBaseline:\"dominant-baseline\",dur:0,dx:0,dy:0,edgeMode:\"edgeMode\",elevation:0,enableBackground:\"enable-background\",end:0,exponent:0,externalResourcesRequired:\"externalResourcesRequired\",fill:0,fillOpacity:\"fill-opacity\",fillRule:\"fill-rule\",filter:0,filterRes:\"filterRes\",filterUnits:\"filterUnits\",floodColor:\"flood-color\",floodOpacity:\"flood-opacity\",focusable:0,fontFamily:\"font-family\",fontSize:\"font-size\",fontSizeAdjust:\"font-size-adjust\",fontStretch:\"font-stretch\",fontStyle:\"font-style\",fontVariant:\"font-variant\",fontWeight:\"font-weight\",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:\"glyph-name\",glyphOrientationHorizontal:\"glyph-orientation-horizontal\",glyphOrientationVertical:\"glyph-orientation-vertical\",glyphRef:\"glyphRef\",gradientTransform:\"gradientTransform\",gradientUnits:\"gradientUnits\",hanging:0,horizAdvX:\"horiz-adv-x\",horizOriginX:\"horiz-origin-x\",ideographic:0,imageRendering:\"image-rendering\",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:\"kernelMatrix\",kernelUnitLength:\"kernelUnitLength\",kerning:0,keyPoints:\"keyPoints\",keySplines:\"keySplines\",keyTimes:\"keyTimes\",lengthAdjust:\"lengthAdjust\",letterSpacing:\"letter-spacing\",lightingColor:\"lighting-color\",limitingConeAngle:\"limitingConeAngle\",local:0,markerEnd:\"marker-end\",markerMid:\"marker-mid\",markerStart:\"marker-start\",markerHeight:\"markerHeight\",markerUnits:\"markerUnits\",markerWidth:\"markerWidth\",mask:0,maskContentUnits:\"maskContentUnits\",maskUnits:\"maskUnits\",mathematical:0,mode:0,numOctaves:\"numOctaves\",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:\"overline-position\",overlineThickness:\"overline-thickness\",paintOrder:\"paint-order\",panose1:\"panose-1\",pathLength:\"pathLength\",patternContentUnits:\"patternContentUnits\",patternTransform:\"patternTransform\",patternUnits:\"patternUnits\",pointerEvents:\"pointer-events\",points:0,pointsAtX:\"pointsAtX\",pointsAtY:\"pointsAtY\",pointsAtZ:\"pointsAtZ\",preserveAlpha:\"preserveAlpha\",preserveAspectRatio:\"preserveAspectRatio\",primitiveUnits:\"primitiveUnits\",r:0,radius:0,refX:\"refX\",refY:\"refY\",renderingIntent:\"rendering-intent\",repeatCount:\"repeatCount\",repeatDur:\"repeatDur\",requiredExtensions:\"requiredExtensions\",requiredFeatures:\"requiredFeatures\",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:\"shape-rendering\",slope:0,spacing:0,specularConstant:\"specularConstant\",specularExponent:\"specularExponent\",speed:0,spreadMethod:\"spreadMethod\",startOffset:\"startOffset\",stdDeviation:\"stdDeviation\",stemh:0,stemv:0,stitchTiles:\"stitchTiles\",stopColor:\"stop-color\",stopOpacity:\"stop-opacity\",strikethroughPosition:\"strikethrough-position\",strikethroughThickness:\"strikethrough-thickness\",string:0,stroke:0,strokeDasharray:\"stroke-dasharray\",strokeDashoffset:\"stroke-dashoffset\",strokeLinecap:\"stroke-linecap\",strokeLinejoin:\"stroke-linejoin\",strokeMiterlimit:\"stroke-miterlimit\",strokeOpacity:\"stroke-opacity\",strokeWidth:\"stroke-width\",surfaceScale:\"surfaceScale\",systemLanguage:\"systemLanguage\",tableValues:\"tableValues\",targetX:\"targetX\",targetY:\"targetY\",textAnchor:\"text-anchor\",textDecoration:\"text-decoration\",textRendering:\"text-rendering\",textLength:\"textLength\",to:0,transform:0,u1:0,u2:0,underlinePosition:\"underline-position\",underlineThickness:\"underline-thickness\",unicode:0,unicodeBidi:\"unicode-bidi\",unicodeRange:\"unicode-range\",unitsPerEm:\"units-per-em\",vAlphabetic:\"v-alphabetic\",vHanging:\"v-hanging\",vIdeographic:\"v-ideographic\",vMathematical:\"v-mathematical\",values:0,vectorEffect:\"vector-effect\",version:0,vertAdvY:\"vert-adv-y\",vertOriginX:\"vert-origin-x\",vertOriginY:\"vert-origin-y\",viewBox:\"viewBox\",viewTarget:\"viewTarget\",visibility:0,widths:0,wordSpacing:\"word-spacing\",writingMode:\"writing-mode\",x:0,xHeight:\"x-height\",x1:0,x2:0,xChannelSelector:\"xChannelSelector\",xlinkActuate:\"xlink:actuate\",xlinkArcrole:\"xlink:arcrole\",xlinkHref:\"xlink:href\",xlinkRole:\"xlink:role\",xlinkShow:\"xlink:show\",xlinkTitle:\"xlink:title\",xlinkType:\"xlink:type\",xmlBase:\"xml:base\",xmlns:0,xmlnsXlink:\"xmlns:xlink\",xmlLang:\"xml:lang\",xmlSpace:\"xml:space\",y:0,y1:0,y2:0,yChannelSelector:\"yChannelSelector\",z:0,zoomAndPan:\"zoomAndPan\"},o={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r.xlink,xlinkArcrole:r.xlink,xlinkHref:r.xlink,xlinkRole:r.xlink,xlinkShow:r.xlink,xlinkTitle:r.xlink,xlinkType:r.xlink,xmlBase:r.xml,xmlLang:r.xml,xmlSpace:r.xml},DOMAttributeNames:{}};Object.keys(i).forEach(function(t){o.Properties[t]=0,i[t]&&(o.DOMAttributeNames[t]=i[t])}),t.exports=o},function(t,e,n){\"use strict\";function r(t){if(\"selectionStart\"in t&&c.hasSelectionCapabilities(t))return{start:t.selectionStart,end:t.selectionEnd};if(window.getSelection){var e=window.getSelection();return{anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function i(t,e){if(y||null==v||v!==l())return null;var n=r(v);if(!m||!p(m,n)){m=n;var i=s.getPooled(d.select,g,t,e);return i.type=\"select\",i.target=v,o.accumulateTwoPhaseDispatches(i),i}return null}var o=n(23),a=n(6),u=n(4),c=n(166),s=n(14),l=n(155),f=n(175),p=n(81),h=a.canUseDOM&&\"documentMode\"in document&&document.documentMode<=11,d={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:[\"topBlur\",\"topContextMenu\",\"topFocus\",\"topKeyDown\",\"topKeyUp\",\"topMouseDown\",\"topMouseUp\",\"topSelectionChange\"]}},v=null,g=null,m=null,y=!1,_=!1,b={eventTypes:d,extractEvents:function(t,e,n,r){if(!_)return null;var o=e?u.getNodeFromInstance(e):window;switch(t){case\"topFocus\":(f(o)||\"true\"===o.contentEditable)&&(v=o,g=e,m=null);break;case\"topBlur\":v=null,g=null,m=null;break;case\"topMouseDown\":y=!0;break;case\"topContextMenu\":case\"topMouseUp\":return y=!1,i(n,r);case\"topSelectionChange\":if(h)break;case\"topKeyDown\":case\"topKeyUp\":return i(n,r)}return null},didPutListener:function(t,e,n){\"onSelect\"===e&&(_=!0)}};t.exports=b},function(t,e,n){\"use strict\";function r(t){return\".\"+t._rootNodeID}function i(t){return\"button\"===t||\"input\"===t||\"select\"===t||\"textarea\"===t}var o=n(1),a=n(153),u=n(23),c=n(4),s=n(389),l=n(390),f=n(14),p=n(393),h=n(395),d=n(54),v=n(392),g=n(396),m=n(397),y=n(25),_=n(398),b=n(11),x=n(92),w=(n(0),{}),C={};[\"abort\",\"animationEnd\",\"animationIteration\",\"animationStart\",\"blur\",\"canPlay\",\"canPlayThrough\",\"click\",\"contextMenu\",\"copy\",\"cut\",\"doubleClick\",\"drag\",\"dragEnd\",\"dragEnter\",\"dragExit\",\"dragLeave\",\"dragOver\",\"dragStart\",\"drop\",\"durationChange\",\"emptied\",\"encrypted\",\"ended\",\"error\",\"focus\",\"input\",\"invalid\",\"keyDown\",\"keyPress\",\"keyUp\",\"load\",\"loadedData\",\"loadedMetadata\",\"loadStart\",\"mouseDown\",\"mouseMove\",\"mouseOut\",\"mouseOver\",\"mouseUp\",\"paste\",\"pause\",\"play\",\"playing\",\"progress\",\"rateChange\",\"reset\",\"scroll\",\"seeked\",\"seeking\",\"stalled\",\"submit\",\"suspend\",\"timeUpdate\",\"touchCancel\",\"touchEnd\",\"touchMove\",\"touchStart\",\"transitionEnd\",\"volumeChange\",\"waiting\",\"wheel\"].forEach(function(t){var e=t[0].toUpperCase()+t.slice(1),n=\"on\"+e,r=\"top\"+e,i={phasedRegistrationNames:{bubbled:n,captured:n+\"Capture\"},dependencies:[r]};w[t]=i,C[r]=i});var k={},E={eventTypes:w,extractEvents:function(t,e,n,r){var i=C[t];if(!i)return null;var a;switch(t){case\"topAbort\":case\"topCanPlay\":case\"topCanPlayThrough\":case\"topDurationChange\":case\"topEmptied\":case\"topEncrypted\":case\"topEnded\":case\"topError\":case\"topInput\":case\"topInvalid\":case\"topLoad\":case\"topLoadedData\":case\"topLoadedMetadata\":case\"topLoadStart\":case\"topPause\":case\"topPlay\":case\"topPlaying\":case\"topProgress\":case\"topRateChange\":case\"topReset\":case\"topSeeked\":case\"topSeeking\":case\"topStalled\":case\"topSubmit\":case\"topSuspend\":case\"topTimeUpdate\":case\"topVolumeChange\":case\"topWaiting\":a=f;break;case\"topKeyPress\":if(0===x(n))return null;case\"topKeyDown\":case\"topKeyUp\":a=h;break;case\"topBlur\":case\"topFocus\":a=p;break;case\"topClick\":if(2===n.button)return null;case\"topDoubleClick\":case\"topMouseDown\":case\"topMouseMove\":case\"topMouseUp\":case\"topMouseOut\":case\"topMouseOver\":case\"topContextMenu\":a=d;break;case\"topDrag\":case\"topDragEnd\":case\"topDragEnter\":case\"topDragExit\":case\"topDragLeave\":case\"topDragOver\":case\"topDragStart\":case\"topDrop\":a=v;break;case\"topTouchCancel\":case\"topTouchEnd\":case\"topTouchMove\":case\"topTouchStart\":a=g;break;case\"topAnimationEnd\":case\"topAnimationIteration\":case\"topAnimationStart\":a=s;break;case\"topTransitionEnd\":a=m;break;case\"topScroll\":a=y;break;case\"topWheel\":a=_;break;case\"topCopy\":case\"topCut\":case\"topPaste\":a=l}a||o(\"86\",t);var c=a.getPooled(i,e,n,r);return u.accumulateTwoPhaseDispatches(c),c},didPutListener:function(t,e,n){if(\"onClick\"===e&&!i(t._tag)){var o=r(t),u=c.getNodeFromInstance(t);k[o]||(k[o]=a.listen(u,\"click\",b))}},willDeleteListener:function(t,e){if(\"onClick\"===e&&!i(t._tag)){var n=r(t);k[n].remove(),delete k[n]}}};t.exports=E},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={animationName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={clipboardData:function(t){return\"clipboardData\"in t?t.clipboardData:window.clipboardData}};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={data:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(54),o={dataTransfer:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o={relatedTarget:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={data:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o=n(92),a=n(403),u=n(93),c={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:u,charCode:function(t){return\"keypress\"===t.type?o(t):0},keyCode:function(t){return\"keydown\"===t.type||\"keyup\"===t.type?t.keyCode:0},which:function(t){return\"keypress\"===t.type?o(t):\"keydown\"===t.type||\"keyup\"===t.type?t.keyCode:0}};i.augmentClass(r,c),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(25),o=n(93),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};i.augmentClass(r,a),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(14),o={propertyName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return i.call(this,t,e,n,r)}var i=n(54),o={deltaX:function(t){return\"deltaX\"in t?t.deltaX:\"wheelDeltaX\"in t?-t.wheelDeltaX:0},deltaY:function(t){return\"deltaY\"in t?t.deltaY:\"wheelDeltaY\"in t?-t.wheelDeltaY:\"wheelDelta\"in t?-t.wheelDelta:0},deltaZ:null,deltaMode:null};i.augmentClass(r,o),t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e=1,n=0,r=0,o=t.length,a=-4&o;r<a;){for(var u=Math.min(r+4096,a);r<u;r+=4)n+=(e+=t.charCodeAt(r))+(e+=t.charCodeAt(r+1))+(e+=t.charCodeAt(r+2))+(e+=t.charCodeAt(r+3));e%=i,n%=i}for(;r<o;r++)n+=e+=t.charCodeAt(r);return e%=i,n%=i,e|n<<16}var i=65521;t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){if(null==e||\"boolean\"==typeof e||\"\"===e)return\"\";var i=isNaN(e);if(r||i||0===e||o.hasOwnProperty(t)&&o[t])return\"\"+e;if(\"string\"==typeof e){e=e.trim()}return e+\"px\"}var i=n(158),o=(n(2),i.isUnitlessNumber);t.exports=r},function(t,e,n){\"use strict\";function r(t){if(null==t)return null;if(1===t.nodeType)return t;var e=a.get(t);if(e)return e=u(e),e?o.getNodeFromInstance(e):null;\"function\"==typeof t.render?i(\"44\"):i(\"45\",Object.keys(t))}var i=n(1),o=(n(15),n(4)),a=n(39),u=n(171);n(0),n(2);t.exports=r},function(t,e,n){\"use strict\";(function(e){function r(t,e,n,r){if(t&&\"object\"==typeof t){var i=t,o=void 0===i[n];o&&null!=e&&(i[n]=e)}}function i(t,e){if(null==t)return t;var n={};return o(t,r,n),n}var o=(n(85),n(177));n(2);void 0!==e&&e.env,t.exports=i}).call(e,n(156))},function(t,e,n){\"use strict\";function r(t){if(t.key){var e=o[t.key]||t.key;if(\"Unidentified\"!==e)return e}if(\"keypress\"===t.type){var n=i(t);return 13===n?\"Enter\":String.fromCharCode(n)}return\"keydown\"===t.type||\"keyup\"===t.type?a[t.keyCode]||\"Unidentified\":\"\"}var i=n(92),o={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},a={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};t.exports=r},function(t,e,n){\"use strict\";function r(t){var e=t&&(i&&t[i]||t[o]);if(\"function\"==typeof e)return e}var i=\"function\"==typeof Symbol&&Symbol.iterator,o=\"@@iterator\";t.exports=r},function(t,e,n){\"use strict\";function r(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function i(t){for(;t;){if(t.nextSibling)return t.nextSibling;t=t.parentNode}}function o(t,e){for(var n=r(t),o=0,a=0;n;){if(3===n.nodeType){if(a=o+n.textContent.length,o<=e&&a>=e)return{node:n,offset:e-o};o=a}n=r(i(n))}}t.exports=o},function(t,e,n){\"use strict\";function r(t,e){var n={};return n[t.toLowerCase()]=e.toLowerCase(),n[\"Webkit\"+t]=\"webkit\"+e,n[\"Moz\"+t]=\"moz\"+e,n[\"ms\"+t]=\"MS\"+e,n[\"O\"+t]=\"o\"+e.toLowerCase(),n}function i(t){if(u[t])return u[t];if(!a[t])return t;var e=a[t];for(var n in e)if(e.hasOwnProperty(n)&&n in c)return u[t]=e[n];return\"\"}var o=n(6),a={animationend:r(\"Animation\",\"AnimationEnd\"),animationiteration:r(\"Animation\",\"AnimationIteration\"),animationstart:r(\"Animation\",\"AnimationStart\"),transitionend:r(\"Transition\",\"TransitionEnd\")},u={},c={};o.canUseDOM&&(c=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),\"TransitionEvent\"in window||delete a.transitionend.transition),t.exports=i},function(t,e,n){\"use strict\";function r(t){return'\"'+i(t)+'\"'}var i=n(56);t.exports=r},function(t,e,n){\"use strict\";var r=n(167);t.exports=r.renderSubtreeIntoContainer},function(t,e,n){\"use strict\";function r(t,e){var n=l.extractSingleTouch(e);return n?n[t.page]:t.page in e?e[t.page]:e[t.client]+f[t.envScroll]}function i(t,e){var n=r(b.x,e),i=r(b.y,e);return Math.pow(Math.pow(n-t.x,2)+Math.pow(i-t.y,2),.5)}function o(t){return{tapMoveThreshold:g,ignoreMouseThreshold:m,eventTypes:C,extractEvents:function(e,n,o,a){if(!h(e)&&!d(e))return null;if(v(e))_=k();else if(t(_,k()))return null;var u=null,l=i(y,o);return d(e)&&l<g&&(u=s.getPooled(C.touchTap,n,o,a)),h(e)?(y.x=r(b.x,o),y.y=r(b.y,o)):d(e)&&(y.x=0,y.y=0),c.accumulateTwoPhaseDispatches(u),u}}}var a=n(353),u=n(52),c=n(23),s=n(25),l=n(410),f=n(90),p=n(340),h=(a.topLevelTypes,u.isStartish),d=u.isEndish,v=function(t){return[\"topTouchCancel\",\"topTouchEnd\",\"topTouchStart\",\"topTouchMove\"].indexOf(t)>=0},g=10,m=750,y={x:null,y:null},_=null,b={x:{page:\"pageX\",client:\"clientX\",envScroll:\"currentPageScrollLeft\"},y:{page:\"pageY\",client:\"clientY\",envScroll:\"currentPageScrollTop\"}},x=[\"topTouchStart\",\"topTouchCancel\",\"topTouchEnd\",\"topTouchMove\"],w=[\"topMouseDown\",\"topMouseMove\",\"topMouseUp\"].concat(x),C={touchTap:{phasedRegistrationNames:{bubbled:p({onTouchTap:null}),captured:p({onTouchTapCapture:null})},dependencies:w}},k=function(){return Date.now?Date.now:function(){return+new Date}}();t.exports=o},function(t,e){var n={extractSingleTouch:function(t){var e=t.touches,n=t.changedTouches,r=e&&e.length>0,i=n&&n.length>0;return!r&&i?n[0]:r?e[0]:t}};t.exports=n},function(t,e){t.exports=function(t,e){if(t&&e-t<750)return!0}},function(t,e,n){\"use strict\";function r(t){var e={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+t).replace(/[=:]/g,function(t){return e[t]})}function i(t){var e=/(=0|=2)/g,n={\"=0\":\"=\",\"=2\":\":\"};return(\"\"+(\".\"===t[0]&&\"$\"===t[1]?t.substring(2):t.substring(1))).replace(e,function(t){return n[t]})}var o={escape:r,unescape:i};t.exports=o},function(t,e,n){\"use strict\";var r=n(40),i=(n(0),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),o=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,t,e,n),i}return new r(t,e,n)},u=function(t,e,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,t,e,n,r),o}return new i(t,e,n,r)},c=function(t){var e=this;t instanceof e||r(\"25\"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},s=i,l=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||s,n.poolSize||(n.poolSize=10),n.release=c,n},f={addPoolingTo:l,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:a,fourArgumentPooler:u};t.exports=f},function(t,e,n){\"use strict\";function r(t){return(\"\"+t).replace(b,\"$&/\")}function i(t,e){this.func=t,this.context=e,this.count=0}function o(t,e,n){var r=t.func,i=t.context;r.call(i,e,t.count++)}function a(t,e,n){if(null==t)return t;var r=i.getPooled(e,n);m(t,o,r),i.release(r)}function u(t,e,n,r){this.result=t,this.keyPrefix=e,this.func=n,this.context=r,this.count=0}function c(t,e,n){var i=t.result,o=t.keyPrefix,a=t.func,u=t.context,c=a.call(u,e,t.count++);Array.isArray(c)?s(c,i,n,g.thatReturnsArgument):null!=c&&(v.isValidElement(c)&&(c=v.cloneAndReplaceKey(c,o+(!c.key||e&&e.key===c.key?\"\":r(c.key)+\"/\")+n)),i.push(c))}function s(t,e,n,i,o){var a=\"\";null!=n&&(a=r(n)+\"/\");var s=u.getPooled(e,a,i,o);m(t,c,s),u.release(s)}function l(t,e,n){if(null==t)return t;var r=[];return s(t,r,null,e,n),r}function f(t,e,n){return null}function p(t,e){return m(t,f,null)}function h(t){var e=[];return s(t,e,null,g.thatReturnsArgument),e}var d=n(413),v=n(27),g=n(11),m=n(423),y=d.twoArgumentPooler,_=d.fourArgumentPooler,b=/\\/+/g;i.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},d.addPoolingTo(i,y),u.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},d.addPoolingTo(u,_);var x={forEach:a,map:l,mapIntoWithKeyPrefixInternal:s,count:p,toArray:h};t.exports=x},function(t,e,n){\"use strict\";var r=n(27),i=r.createFactory,o={a:i(\"a\"),abbr:i(\"abbr\"),address:i(\"address\"),area:i(\"area\"),article:i(\"article\"),aside:i(\"aside\"),audio:i(\"audio\"),b:i(\"b\"),base:i(\"base\"),bdi:i(\"bdi\"),bdo:i(\"bdo\"),big:i(\"big\"),blockquote:i(\"blockquote\"),body:i(\"body\"),br:i(\"br\"),button:i(\"button\"),canvas:i(\"canvas\"),caption:i(\"caption\"),cite:i(\"cite\"),code:i(\"code\"),col:i(\"col\"),colgroup:i(\"colgroup\"),data:i(\"data\"),datalist:i(\"datalist\"),dd:i(\"dd\"),del:i(\"del\"),details:i(\"details\"),dfn:i(\"dfn\"),dialog:i(\"dialog\"),div:i(\"div\"),dl:i(\"dl\"),dt:i(\"dt\"),em:i(\"em\"),embed:i(\"embed\"),fieldset:i(\"fieldset\"),figcaption:i(\"figcaption\"),figure:i(\"figure\"),footer:i(\"footer\"),form:i(\"form\"),h1:i(\"h1\"),h2:i(\"h2\"),h3:i(\"h3\"),h4:i(\"h4\"),h5:i(\"h5\"),h6:i(\"h6\"),head:i(\"head\"),header:i(\"header\"),hgroup:i(\"hgroup\"),hr:i(\"hr\"),html:i(\"html\"),i:i(\"i\"),iframe:i(\"iframe\"),img:i(\"img\"),input:i(\"input\"),ins:i(\"ins\"),kbd:i(\"kbd\"),keygen:i(\"keygen\"),label:i(\"label\"),legend:i(\"legend\"),li:i(\"li\"),link:i(\"link\"),main:i(\"main\"),map:i(\"map\"),mark:i(\"mark\"),menu:i(\"menu\"),menuitem:i(\"menuitem\"),meta:i(\"meta\"),meter:i(\"meter\"),nav:i(\"nav\"),noscript:i(\"noscript\"),object:i(\"object\"),ol:i(\"ol\"),optgroup:i(\"optgroup\"),option:i(\"option\"),output:i(\"output\"),p:i(\"p\"),param:i(\"param\"),picture:i(\"picture\"),pre:i(\"pre\"),progress:i(\"progress\"),q:i(\"q\"),rp:i(\"rp\"),rt:i(\"rt\"),ruby:i(\"ruby\"),s:i(\"s\"),samp:i(\"samp\"),script:i(\"script\"),section:i(\"section\"),select:i(\"select\"),small:i(\"small\"),source:i(\"source\"),span:i(\"span\"),strong:i(\"strong\"),style:i(\"style\"),sub:i(\"sub\"),summary:i(\"summary\"),sup:i(\"sup\"),table:i(\"table\"),tbody:i(\"tbody\"),td:i(\"td\"),textarea:i(\"textarea\"),tfoot:i(\"tfoot\"),th:i(\"th\"),thead:i(\"thead\"),time:i(\"time\"),title:i(\"title\"),tr:i(\"tr\"),track:i(\"track\"),u:i(\"u\"),ul:i(\"ul\"),var:i(\"var\"),video:i(\"video\"),wbr:i(\"wbr\"),circle:i(\"circle\"),clipPath:i(\"clipPath\"),defs:i(\"defs\"),ellipse:i(\"ellipse\"),g:i(\"g\"),image:i(\"image\"),line:i(\"line\"),linearGradient:i(\"linearGradient\"),mask:i(\"mask\"),path:i(\"path\"),pattern:i(\"pattern\"),polygon:i(\"polygon\"),polyline:i(\"polyline\"),radialGradient:i(\"radialGradient\"),rect:i(\"rect\"),stop:i(\"stop\"),svg:i(\"svg\"),text:i(\"text\"),tspan:i(\"tspan\")};t.exports=o},function(t,e,n){\"use strict\";var r=n(27),i=r.isValidElement,o=n(157);t.exports=o(i)},function(t,e,n){\"use strict\";t.exports=\"15.6.2\"},function(t,e,n){\"use strict\";var r=n(178),i=r.Component,o=n(27),a=o.isValidElement,u=n(181),c=n(191);t.exports=c(i,a,u)},function(t,e,n){\"use strict\";function r(t){var e=t&&(i&&t[i]||t[o]);if(\"function\"==typeof e)return e}var i=\"function\"==typeof Symbol&&Symbol.iterator,o=\"@@iterator\";t.exports=r},function(t,e,n){\"use strict\";function r(){return i++}var i=1;t.exports=r},function(t,e,n){\"use strict\";var r=function(){};t.exports=r},function(t,e,n){\"use strict\";function r(t){return o.isValidElement(t)||i(\"143\"),t}var i=n(40),o=n(27);n(0);t.exports=r},function(t,e,n){\"use strict\";function r(t,e){return t&&\"object\"==typeof t&&null!=t.key?s.escape(t.key):e.toString(36)}function i(t,e,n,o){var p=typeof t;if(\"undefined\"!==p&&\"boolean\"!==p||(t=null),null===t||\"string\"===p||\"number\"===p||\"object\"===p&&t.$$typeof===u)return n(o,t,\"\"===e?l+r(t,0):e),1;var h,d,v=0,g=\"\"===e?l:e+f;if(Array.isArray(t))for(var m=0;m<t.length;m++)h=t[m],d=g+r(h,m),v+=i(h,d,n,o);else{var y=c(t);if(y){var _,b=y.call(t);if(y!==t.entries)for(var x=0;!(_=b.next()).done;)h=_.value,d=g+r(h,x++),v+=i(h,d,n,o);else for(;!(_=b.next()).done;){var w=_.value;w&&(h=w[1],d=g+s.escape(w[0])+f+r(h,0),v+=i(h,d,n,o))}}else if(\"object\"===p){var C=\"\",k=String(t);a(\"31\",\"[object Object]\"===k?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":k,C)}}return v}function o(t,e,n){return null==t?0:i(t,\"\",e,n)}var a=n(40),u=(n(15),n(180)),c=n(419),s=(n(0),n(412)),l=(n(2),\".\"),f=\":\";t.exports=o}]);</script>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.initjs()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>OverallQual</th>\n",
       "      <th>OverallCond</th>\n",
       "      <th>YearBuilt</th>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <th>MasVnrArea</th>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <th>...</th>\n",
       "      <th>Street_Pave</th>\n",
       "      <th>Electrical_?</th>\n",
       "      <th>Electrical_FuseA</th>\n",
       "      <th>Electrical_FuseF</th>\n",
       "      <th>Electrical_FuseP</th>\n",
       "      <th>Electrical_Mix</th>\n",
       "      <th>Electrical_SBrkr</th>\n",
       "      <th>Alley_?</th>\n",
       "      <th>Alley_Grvl</th>\n",
       "      <th>Alley_Pave</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1447</th>\n",
       "      <td>-0.046315</td>\n",
       "      <td>1.6544</td>\n",
       "      <td>-0.775646</td>\n",
       "      <td>1.255836</td>\n",
       "      <td>-0.282035</td>\n",
       "      <td>-1.105566</td>\n",
       "      <td>0.491436</td>\n",
       "      <td>0.32743</td>\n",
       "      <td>-0.28498</td>\n",
       "      <td>0.064219</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 292 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      LotFrontage  LotArea  OverallQual  OverallCond  YearBuilt  YearRemodAdd  \\\n",
       "Id                                                                              \n",
       "1447    -0.046315   1.6544    -0.775646     1.255836  -0.282035     -1.105566   \n",
       "\n",
       "      MasVnrArea  BsmtFinSF1  BsmtFinSF2  BsmtUnfSF  ...  Street_Pave  \\\n",
       "Id                                                   ...                \n",
       "1447    0.491436     0.32743    -0.28498   0.064219  ...          1.0   \n",
       "\n",
       "      Electrical_?  Electrical_FuseA  Electrical_FuseF  Electrical_FuseP  \\\n",
       "Id                                                                         \n",
       "1447           0.0               0.0               0.0               0.0   \n",
       "\n",
       "      Electrical_Mix  Electrical_SBrkr  Alley_?  Alley_Grvl  Alley_Pave  \n",
       "Id                                                                       \n",
       "1447             0.0               1.0      1.0         0.0         0.0  \n",
       "\n",
       "[1 rows x 292 columns]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_enc.head(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11.94633015451298"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf[1].predict(X_train_enc)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<div id='iZV9CQP3KSHPY3DWMPQ5M'>\n",
       "<div style='color: #900; text-align: center;'>\n",
       "  <b>Visualization omitted, Javascript library not loaded!</b><br>\n",
       "  Have you run `initjs()` in this notebook? If this notebook was from another\n",
       "  user you must also trust this notebook (File -> Trust notebook). If you are viewing\n",
       "  this notebook on github the Javascript has been stripped for security. If you are using\n",
       "  JupyterLab this error is because a JupyterLab extension has not yet been written.\n",
       "</div></div>\n",
       " <script>\n",
       "   if (window.SHAP) SHAP.ReactDom.render(\n",
       "    SHAP.React.createElement(SHAP.AdditiveForceVisualizer, {\"outNames\": [\"output value\"], \"baseValue\": 12.017289439634062, \"outValue\": 11.946330154512983, \"link\": \"identity\", \"featureNames\": [\"LotFrontage\", \"LotArea\", \"OverallQual\", \"OverallCond\", \"YearBuilt\", \"YearRemodAdd\", \"MasVnrArea\", \"BsmtFinSF1\", \"BsmtFinSF2\", \"BsmtUnfSF\", \"TotalBsmtSF\", \"1stFlrSF\", \"2ndFlrSF\", \"LowQualFinSF\", \"GrLivArea\", \"BsmtFullBath\", \"BsmtHalfBath\", \"FullBath\", \"HalfBath\", \"TotRmsAbvGrd\", \"Fireplaces\", \"GarageYrBlt\", \"GarageCars\", \"GarageArea\", \"WoodDeckSF\", \"OpenPorchSF\", \"EnclosedPorch\", \"3SsnPorch\", \"ScreenPorch\", \"PoolArea\", \"MiscVal\", \"YrSold\", \"ExterQual\", \"ExterCond\", \"BsmtQual\", \"BsmtCond\", \"HeatingQC\", \"KitchenQual\", \"FireplaceQu\", \"GarageQual\", \"GarageCond\", \"PoolQC\", \"BldgType_1Fam\", \"BldgType_2fmCon\", \"BldgType_Duplex\", \"BldgType_Twnhs\", \"BldgType_TwnhsE\", \"Condition1_Artery\", \"Condition1_Feedr\", \"Condition1_Norm\", \"Condition1_PosA\", \"Condition1_PosN\", \"Condition1_RRAe\", \"Condition1_RRAn\", \"Condition1_RRNe\", \"Condition1_RRNn\", \"KitchenAbvGr_1\", \"KitchenAbvGr_2\", \"HouseStyle_1.5Fin\", \"HouseStyle_1.5Unf\", \"HouseStyle_1Story\", \"HouseStyle_2.5Fin\", \"HouseStyle_2.5Unf\", \"HouseStyle_2Story\", \"HouseStyle_SFoyer\", \"HouseStyle_SLvl\", \"RoofStyle_Flat\", \"RoofStyle_Gable\", \"RoofStyle_Gambrel\", \"RoofStyle_Hip\", \"RoofStyle_Mansard\", \"RoofStyle_Shed\", \"SaleCondition_Abnorml\", \"SaleCondition_AdjLand\", \"SaleCondition_Alloca\", \"SaleCondition_Family\", \"SaleCondition_Normal\", \"SaleCondition_Partial\", \"MSSubClass_20\", \"MSSubClass_30\", \"MSSubClass_40\", \"MSSubClass_45\", \"MSSubClass_50\", \"MSSubClass_60\", \"MSSubClass_70\", \"MSSubClass_75\", \"MSSubClass_80\", \"MSSubClass_85\", \"MSSubClass_90\", \"MSSubClass_120\", \"MSSubClass_160\", \"MSSubClass_180\", \"MSSubClass_190\", \"RoofMatl_ClyTile\", \"RoofMatl_CompShg\", \"RoofMatl_Membran\", \"RoofMatl_Roll\", \"RoofMatl_Tar&Grv\", \"RoofMatl_WdShake\", \"RoofMatl_WdShngl\", \"LandSlope_Gtl\", \"LandSlope_Mod\", \"LandSlope_Sev\", \"Heating_Floor\", \"Heating_GasA\", \"Heating_GasW\", \"Heating_Grav\", \"Heating_OthW\", \"Heating_Wall\", \"LandContour_Bnk\", \"LandContour_HLS\", \"LandContour_Low\", \"LandContour_Lvl\", \"Exterior1st_AsbShng\", \"Exterior1st_BrkComm\", \"Exterior1st_BrkFace\", \"Exterior1st_CBlock\", \"Exterior1st_CemntBd\", \"Exterior1st_HdBoard\", \"Exterior1st_MetalSd\", \"Exterior1st_Plywood\", \"Exterior1st_Stone\", \"Exterior1st_Stucco\", \"Exterior1st_VinylSd\", \"Exterior1st_Wd Sdng\", \"Exterior1st_WdShing\", \"LotShape_IR1\", \"LotShape_IR2\", \"LotShape_IR3\", \"LotShape_Reg\", \"Foundation_BrkTil\", \"Foundation_CBlock\", \"Foundation_PConc\", \"Foundation_Slab\", \"Foundation_Stone\", \"Foundation_Wood\", \"Exterior2nd_AsbShng\", \"Exterior2nd_AsphShn\", \"Exterior2nd_Brk Cmn\", \"Exterior2nd_BrkFace\", \"Exterior2nd_CBlock\", \"Exterior2nd_CmentBd\", \"Exterior2nd_HdBoard\", \"Exterior2nd_ImStucc\", \"Exterior2nd_MetalSd\", \"Exterior2nd_Other\", \"Exterior2nd_Plywood\", \"Exterior2nd_Stone\", \"Exterior2nd_Stucco\", \"Exterior2nd_VinylSd\", \"Exterior2nd_Wd Sdng\", \"Exterior2nd_Wd Shng\", \"MSZoning_C (all)\", \"MSZoning_FV\", \"MSZoning_RH\", \"MSZoning_RL\", \"MSZoning_RM\", \"BsmtFinType2_?\", \"BsmtFinType2_ALQ\", \"BsmtFinType2_BLQ\", \"BsmtFinType2_GLQ\", \"BsmtFinType2_LwQ\", \"BsmtFinType2_Rec\", \"BsmtFinType2_Unf\", \"MasVnrType_?\", \"MasVnrType_BrkCmn\", \"MasVnrType_BrkFace\", \"MasVnrType_None\", \"MasVnrType_Stone\", \"CentralAir_N\", \"CentralAir_Y\", \"GarageFinish_?\", \"GarageFinish_Fin\", \"GarageFinish_RFn\", \"GarageFinish_Unf\", \"MoSold_1\", \"MoSold_2\", \"MoSold_3\", \"MoSold_4\", \"MoSold_5\", \"MoSold_6\", \"MoSold_7\", \"MoSold_8\", \"MoSold_9\", \"MoSold_10\", \"MoSold_11\", \"MoSold_12\", \"MiscFeature_?\", \"MiscFeature_Gar2\", \"MiscFeature_Shed\", \"MiscFeature_TenC\", \"PavedDrive_N\", \"PavedDrive_P\", \"PavedDrive_Y\", \"BsmtExposure_?\", \"BsmtExposure_Av\", \"BsmtExposure_Gd\", \"BsmtExposure_Mn\", \"BsmtExposure_No\", \"LotConfig_Corner\", \"LotConfig_CulDSac\", \"LotConfig_FR2\", \"LotConfig_FR3\", \"LotConfig_Inside\", \"Neighborhood_Blmngtn\", \"Neighborhood_Blueste\", \"Neighborhood_BrDale\", \"Neighborhood_BrkSide\", \"Neighborhood_ClearCr\", \"Neighborhood_CollgCr\", \"Neighborhood_Crawfor\", \"Neighborhood_Edwards\", \"Neighborhood_Gilbert\", \"Neighborhood_IDOTRR\", \"Neighborhood_MeadowV\", \"Neighborhood_Mitchel\", \"Neighborhood_NAmes\", \"Neighborhood_NPkVill\", \"Neighborhood_NWAmes\", \"Neighborhood_NoRidge\", \"Neighborhood_NridgHt\", \"Neighborhood_OldTown\", \"Neighborhood_SWISU\", \"Neighborhood_Sawyer\", \"Neighborhood_SawyerW\", \"Neighborhood_Somerst\", \"Neighborhood_StoneBr\", \"Neighborhood_Timber\", \"Neighborhood_Veenker\", \"BedroomAbvGr_0\", \"BedroomAbvGr_1\", \"BedroomAbvGr_2\", \"BedroomAbvGr_3\", \"BedroomAbvGr_4\", \"BedroomAbvGr_5\", \"BedroomAbvGr_6\", \"BedroomAbvGr_8\", \"GarageType_2Types\", \"GarageType_?\", \"GarageType_Attchd\", \"GarageType_Basment\", \"GarageType_BuiltIn\", \"GarageType_CarPort\", \"GarageType_Detchd\", \"Condition2_Artery\", \"Condition2_Feedr\", \"Condition2_Norm\", \"Condition2_PosA\", \"Condition2_PosN\", \"Condition2_RRAe\", \"Condition2_RRAn\", \"Condition2_RRNn\", \"SaleType_COD\", \"SaleType_CWD\", \"SaleType_Con\", \"SaleType_ConLD\", \"SaleType_ConLI\", \"SaleType_ConLw\", \"SaleType_New\", \"SaleType_Oth\", \"SaleType_WD\", \"Fence_?\", \"Fence_GdPrv\", \"Fence_GdWo\", \"Fence_MnPrv\", \"Fence_MnWw\", \"BsmtFinType1_?\", \"BsmtFinType1_ALQ\", \"BsmtFinType1_BLQ\", \"BsmtFinType1_GLQ\", \"BsmtFinType1_LwQ\", \"BsmtFinType1_Rec\", \"BsmtFinType1_Unf\", \"Utilities_AllPub\", \"Utilities_NoSeWa\", \"Functional_Maj1\", \"Functional_Maj2\", \"Functional_Min1\", \"Functional_Min2\", \"Functional_Mod\", \"Functional_Typ\", \"Street_Grvl\", \"Street_Pave\", \"Electrical_?\", \"Electrical_FuseA\", \"Electrical_FuseF\", \"Electrical_FuseP\", \"Electrical_Mix\", \"Electrical_SBrkr\", \"Alley_?\", \"Alley_Grvl\", \"Alley_Pave\"], \"features\": {\"0\": {\"effect\": 0.004003051317694413, \"value\": -0.046314594953341746}, \"1\": {\"effect\": 0.023307245147225496, \"value\": 1.6543999741735715}, \"2\": {\"effect\": -0.12898907161709167, \"value\": -0.7756462381231903}, \"3\": {\"effect\": 0.011379182697996575, \"value\": 1.2558360896015002}, \"4\": {\"effect\": 0.008015928409388017, \"value\": -0.2820346097859214}, \"5\": {\"effect\": -0.009436397939566871, \"value\": -1.1055663950373225}, \"6\": {\"effect\": 0.00236994045123742, \"value\": 0.49143639027853336}, \"7\": {\"effect\": 0.012161387346442391, \"value\": 0.32743038163338695}, \"8\": {\"effect\": -7.459283552842521e-05, \"value\": -0.28497976214807885}, \"9\": {\"effect\": 9.653880265117063e-05, \"value\": 0.06421907121089984}, \"10\": {\"effect\": 0.0447717877509916, \"value\": 0.2973786289386201}, \"11\": {\"effect\": 0.02126483336386526, \"value\": 0.06329090811207412}, \"12\": {\"effect\": -0.004388723786440261, \"value\": -0.8018881271474662}, \"13\": {\"effect\": -1.7181440289758384e-05, \"value\": -0.12494295031913583}, \"14\": {\"effect\": -0.03245012471839112, \"value\": -0.6136840727070588}, \"15\": {\"effect\": -0.0014539460007901308, \"value\": -0.8066105913126569}, \"16\": {\"effect\": 6.119837158762497e-05, \"value\": -0.2323049843406005}, \"17\": {\"effect\": -0.0024089212277336254, \"value\": -1.0274663688561927}, \"18\": {\"effect\": -0.0005704183799584816, \"value\": -0.7629893101655203}, \"19\": {\"effect\": -0.00048275703709109506, \"value\": -0.320031541449963}, \"20\": {\"effect\": -0.007443529023706211, \"value\": -0.9529828639596026}, \"21\": {\"effect\": -0.00035228881905282873, \"value\": -0.6633436387785765}, \"22\": {\"effect\": -0.028103822916710115, \"value\": -1.00826667790622}, \"23\": {\"effect\": -0.0023144269699222416, \"value\": -0.7295694511035073}, \"24\": {\"effect\": 0.0029825249402019804, \"value\": 1.2762309506840286}, \"25\": {\"effect\": 0.0016191596589395982, \"value\": -0.09571238922899551}, \"26\": {\"effect\": 0.0010098804144143374, \"value\": -0.35200253771906914}, \"27\": {\"effect\": -9.241011542789025e-07, \"value\": -0.108965082468625}, \"28\": {\"effect\": -0.0007732175219070727, \"value\": -0.26487686419873274}, \"29\": {\"effect\": 7.1416818941319986e-06, \"value\": -0.07333340857320902}, \"30\": {\"effect\": -6.387486336366443e-05, \"value\": -0.10879978252125051}, \"31\": {\"effect\": -0.00046618564887355144, \"value\": 1.6092617555367772}, \"32\": {\"effect\": -0.0007248218499333943, \"value\": 2.0}, \"33\": {\"effect\": 0.0005993811170545756, \"value\": 2.0}, \"34\": {\"effect\": -0.0038712168893727315, \"value\": 2.0}, \"35\": {\"effect\": 0.000433250217237362, \"value\": 2.0}, \"36\": {\"effect\": -0.000913375090119834, \"value\": 2.0}, \"37\": {\"effect\": -0.0017755889154550829, \"value\": 2.0}, \"38\": {\"effect\": -2.3473860353633002e-05, \"value\": 3.0}, \"39\": {\"effect\": 7.413414509940553e-05, \"value\": 2.0}, \"40\": {\"effect\": 3.7842940077613804e-05, \"value\": 2.0}, \"41\": {\"effect\": 1.4542888549924526e-06, \"value\": 4.0}, \"42\": {\"effect\": 0.0005568750349989799, \"value\": 1.0}, \"43\": {\"effect\": 2.497793120056013e-06, \"value\": 0.0}, \"44\": {\"effect\": 6.946242825431376e-05, \"value\": 0.0}, \"45\": {\"effect\": 7.460793957770297e-06, \"value\": 0.0}, \"46\": {\"effect\": 2.330399120246392e-05, \"value\": 0.0}, \"47\": {\"effect\": 0.00013978783242433047, \"value\": 0.0}, \"48\": {\"effect\": -7.914239741671622e-05, \"value\": 0.0}, \"49\": {\"effect\": 0.0002849750208974986, \"value\": 1.0}, \"50\": {\"effect\": 9.660187284501911e-07, \"value\": 0.0}, \"51\": {\"effect\": 4.1862951352388835e-06, \"value\": 0.0}, \"52\": {\"effect\": 4.682974785716982e-06, \"value\": 0.0}, \"53\": {\"effect\": -3.327471247613696e-06, \"value\": 0.0}, \"54\": {\"effect\": 1.0575678713921151e-06, \"value\": 0.0}, \"55\": {\"effect\": 2.890033489715254e-06, \"value\": 0.0}, \"56\": {\"effect\": 0.0003976659816725892, \"value\": 1.0}, \"57\": {\"effect\": 0.0003071972886803342, \"value\": 0.0}, \"58\": {\"effect\": 0.000996090286343302, \"value\": 0.0}, \"59\": {\"effect\": -2.7913214350404033e-06, \"value\": 0.0}, \"60\": {\"effect\": 0.00018310313980715552, \"value\": 1.0}, \"61\": {\"effect\": -1.6904049269841881e-07, \"value\": 0.0}, \"62\": {\"effect\": -1.4572225281025628e-06, \"value\": 0.0}, \"63\": {\"effect\": -0.00036159435648730584, \"value\": 0.0}, \"64\": {\"effect\": 3.637371579198825e-05, \"value\": 0.0}, \"65\": {\"effect\": -0.000180527014908549, \"value\": 0.0}, \"66\": {\"effect\": -3.1573133269336976e-05, \"value\": 0.0}, \"67\": {\"effect\": -0.00022296955462458253, \"value\": 1.0}, \"68\": {\"effect\": -7.421397340172999e-05, \"value\": 0.0}, \"69\": {\"effect\": -7.796663813783942e-05, \"value\": 0.0}, \"70\": {\"effect\": -1.0827819283774655e-05, \"value\": 0.0}, \"71\": {\"effect\": -1.5334273163913241e-06, \"value\": 0.0}, \"72\": {\"effect\": 0.0006974854558251787, \"value\": 0.0}, \"73\": {\"effect\": -1.3362648978399122e-06, \"value\": 0.0}, \"74\": {\"effect\": 8.080464643319036e-06, \"value\": 0.0}, \"75\": {\"effect\": 9.445849094905957e-05, \"value\": 0.0}, \"76\": {\"effect\": 0.001160385760582165, \"value\": 1.0}, \"77\": {\"effect\": -5.371706361741574e-05, \"value\": 0.0}, \"78\": {\"effect\": 0.0003068086099289864, \"value\": 1.0}, \"79\": {\"effect\": 0.0011757451044689337, \"value\": 0.0}, \"80\": {\"effect\": 6.506776940313336e-07, \"value\": 0.0}, \"81\": {\"effect\": -5.1629702768893945e-06, \"value\": 0.0}, \"82\": {\"effect\": 5.349140410161802e-05, \"value\": 0.0}, \"83\": {\"effect\": -0.00046042521917654994, \"value\": 0.0}, \"84\": {\"effect\": 4.079027476277466e-05, \"value\": 0.0}, \"85\": {\"effect\": 6.609074770337197e-06, \"value\": 0.0}, \"86\": {\"effect\": -0.0003042959040187094, \"value\": 0.0}, \"87\": {\"effect\": -2.651403214918972e-06, \"value\": 0.0}, \"88\": {\"effect\": 0.00020375445326251867, \"value\": 0.0}, \"89\": {\"effect\": 5.77624091154731e-06, \"value\": 0.0}, \"90\": {\"effect\": 0.00026476075669572025, \"value\": 0.0}, \"91\": {\"effect\": -1.621477879135945e-06, \"value\": 0.0}, \"92\": {\"effect\": -3.943407581970073e-06, \"value\": 0.0}, \"93\": {\"effect\": 3.2853474243086654e-06, \"value\": 0.0}, \"94\": {\"effect\": -1.5483193045466545e-05, \"value\": 1.0}, \"95\": {\"effect\": 1.34894500942255e-06, \"value\": 0.0}, \"96\": {\"effect\": 5.216831105572058e-07, \"value\": 0.0}, \"97\": {\"effect\": 5.875373638409038e-07, \"value\": 0.0}, \"98\": {\"effect\": -9.570095561243358e-08, \"value\": 0.0}, \"99\": {\"effect\": -3.8406433634540274e-06, \"value\": 0.0}, \"100\": {\"effect\": -6.815329013179787e-06, \"value\": 1.0}, \"101\": {\"effect\": -0.0001795109296537083, \"value\": 0.0}, \"102\": {\"effect\": -3.819934607868241e-06, \"value\": 0.0}, \"103\": {\"effect\": 3.876299438801555e-07, \"value\": 0.0}, \"104\": {\"effect\": 5.267893364602667e-06, \"value\": 1.0}, \"105\": {\"effect\": -1.049834734533333e-05, \"value\": 0.0}, \"106\": {\"effect\": 3.475067216221565e-07, \"value\": 0.0}, \"107\": {\"effect\": -2.1420869285137926e-07, \"value\": 0.0}, \"108\": {\"effect\": -1.1964241924990928e-06, \"value\": 0.0}, \"109\": {\"effect\": -2.3373936089134228e-05, \"value\": 0.0}, \"110\": {\"effect\": -0.0006399749754551704, \"value\": 0.0}, \"111\": {\"effect\": -3.2552904729447375e-06, \"value\": 0.0}, \"112\": {\"effect\": -7.280091201404697e-05, \"value\": 1.0}, \"113\": {\"effect\": 3.5073493094005834e-06, \"value\": 0.0}, \"114\": {\"effect\": -2.5914596483980274e-08, \"value\": 0.0}, \"115\": {\"effect\": -6.191172641707243e-05, \"value\": 0.0}, \"116\": {\"effect\": 6.547348123727033e-08, \"value\": 0.0}, \"117\": {\"effect\": -2.5766523265572023e-06, \"value\": 0.0}, \"118\": {\"effect\": -2.171355727515621e-05, \"value\": 1.0}, \"119\": {\"effect\": -0.0001850070565297198, \"value\": 0.0}, \"120\": {\"effect\": -3.440424956876582e-05, \"value\": 0.0}, \"121\": {\"effect\": 1.4312120145389752e-07, \"value\": 0.0}, \"122\": {\"effect\": 2.2223037366755588e-05, \"value\": 0.0}, \"123\": {\"effect\": 9.278206921812946e-05, \"value\": 0.0}, \"124\": {\"effect\": -2.212369334017464e-05, \"value\": 0.0}, \"125\": {\"effect\": -7.388135409031038e-06, \"value\": 0.0}, \"126\": {\"effect\": 0.00044795453094031914, \"value\": 1.0}, \"127\": {\"effect\": 3.872366342377826e-06, \"value\": 0.0}, \"128\": {\"effect\": 2.940730538821262e-06, \"value\": 0.0}, \"129\": {\"effect\": 0.0010295721729247235, \"value\": 0.0}, \"130\": {\"effect\": 1.6266699937507743e-05, \"value\": 0.0}, \"131\": {\"effect\": -0.00029169311500315553, \"value\": 1.0}, \"132\": {\"effect\": -0.0008443411517038558, \"value\": 0.0}, \"133\": {\"effect\": 1.8201949981414365e-06, \"value\": 0.0}, \"134\": {\"effect\": 1.2181084803379133e-07, \"value\": 0.0}, \"135\": {\"effect\": 1.6720326285722686e-06, \"value\": 0.0}, \"136\": {\"effect\": 1.2568079826853636e-05, \"value\": 0.0}, \"137\": {\"effect\": -1.1480976615229894e-06, \"value\": 0.0}, \"138\": {\"effect\": 1.8634636026701207e-06, \"value\": 0.0}, \"139\": {\"effect\": 7.465094841306141e-05, \"value\": 0.0}, \"140\": {\"effect\": -3.030590564242477e-06, \"value\": 0.0}, \"141\": {\"effect\": 1.3765637899849453e-05, \"value\": 0.0}, \"142\": {\"effect\": -0.00029585032712437366, \"value\": 1.0}, \"143\": {\"effect\": -2.269125802664064e-06, \"value\": 0.0}, \"144\": {\"effect\": 0.00013252801360467593, \"value\": 0.0}, \"145\": {\"effect\": 1.0168417845826368e-08, \"value\": 0.0}, \"146\": {\"effect\": 1.488764940091173e-05, \"value\": 0.0}, \"147\": {\"effect\": -1.4630215877575378e-06, \"value\": 0.0}, \"148\": {\"effect\": 1.586993035555485e-05, \"value\": 0.0}, \"149\": {\"effect\": 0.0001776793326847227, \"value\": 0.0}, \"150\": {\"effect\": 0.00014449314166009857, \"value\": 0.0}, \"151\": {\"effect\": 2.540673429078045e-05, \"value\": 0.0}, \"152\": {\"effect\": 0.0010817168302498011, \"value\": 0.0}, \"153\": {\"effect\": -1.651836576829155e-05, \"value\": 0.0}, \"154\": {\"effect\": 1.4867151149185079e-05, \"value\": 0.0}, \"155\": {\"effect\": 0.001569046367837805, \"value\": 1.0}, \"156\": {\"effect\": 0.0034243843027724616, \"value\": 0.0}, \"157\": {\"effect\": 7.861569591654073e-07, \"value\": 0.0}, \"158\": {\"effect\": -1.1006601648126823e-05, \"value\": 0.0}, \"159\": {\"effect\": -8.789198241762185e-06, \"value\": 0.0}, \"160\": {\"effect\": 1.138227804130067e-06, \"value\": 0.0}, \"161\": {\"effect\": -1.812061341694681e-05, \"value\": 0.0}, \"162\": {\"effect\": 6.169065712415965e-06, \"value\": 0.0}, \"163\": {\"effect\": -0.00011012088847075015, \"value\": 1.0}, \"164\": {\"effect\": -1.279639895094295e-06, \"value\": 0.0}, \"165\": {\"effect\": 3.0312801191415543e-05, \"value\": 0.0}, \"166\": {\"effect\": 0.0005874790783606365, \"value\": 1.0}, \"167\": {\"effect\": 6.437847338040196e-05, \"value\": 0.0}, \"168\": {\"effect\": -6.827445391109784e-06, \"value\": 0.0}, \"169\": {\"effect\": 0.0009064294749511253, \"value\": 0.0}, \"170\": {\"effect\": 0.002547592982652554, \"value\": 1.0}, \"171\": {\"effect\": 0.00011459892713842508, \"value\": 0.0}, \"172\": {\"effect\": -6.222820026700085e-05, \"value\": 0.0}, \"173\": {\"effect\": -9.266903338688747e-05, \"value\": 0.0}, \"174\": {\"effect\": -0.0007077830497666567, \"value\": 1.0}, \"175\": {\"effect\": 0.00013341609611849597, \"value\": 0.0}, \"176\": {\"effect\": -4.2242749930713496e-06, \"value\": 0.0}, \"177\": {\"effect\": 0.00012237008805995352, \"value\": 0.0}, \"178\": {\"effect\": -8.68555001905575e-05, \"value\": 1.0}, \"179\": {\"effect\": 0.0005820015882832495, \"value\": 0.0}, \"180\": {\"effect\": -0.00010388858363380351, \"value\": 0.0}, \"181\": {\"effect\": -0.00015547461509954013, \"value\": 0.0}, \"182\": {\"effect\": 0.00015951047269194835, \"value\": 0.0}, \"183\": {\"effect\": -9.753867022500951e-05, \"value\": 0.0}, \"184\": {\"effect\": 2.5979092793258872e-05, \"value\": 0.0}, \"185\": {\"effect\": 3.1750378128363405e-06, \"value\": 0.0}, \"186\": {\"effect\": 0.0006476654428776425, \"value\": 0.0}, \"187\": {\"effect\": -1.4196311984946948e-05, \"value\": 1.0}, \"189\": {\"effect\": 1.5766189430709814e-05, \"value\": 0.0}, \"191\": {\"effect\": 0.0006428260141384159, \"value\": 0.0}, \"192\": {\"effect\": 0.0004230349482806254, \"value\": 1.0}, \"193\": {\"effect\": -0.000719901579856608, \"value\": 0.0}, \"194\": {\"effect\": 9.877871144567148e-06, \"value\": 0.0}, \"195\": {\"effect\": 3.0503999655469e-05, \"value\": 0.0}, \"196\": {\"effect\": -0.00022198708308122033, \"value\": 0.0}, \"197\": {\"effect\": -2.6574087563954494e-05, \"value\": 0.0}, \"198\": {\"effect\": -0.0003743017983391246, \"value\": 1.0}, \"199\": {\"effect\": -1.0585226853648084e-05, \"value\": 0.0}, \"200\": {\"effect\": 0.0001568562719025562, \"value\": 1.0}, \"201\": {\"effect\": 3.6130773539274425e-05, \"value\": 0.0}, \"202\": {\"effect\": -3.001294698795539e-07, \"value\": 0.0}, \"203\": {\"effect\": 6.650683914693316e-05, \"value\": 0.0}, \"204\": {\"effect\": -3.5791689163273917e-06, \"value\": 0.0}, \"205\": {\"effect\": 1.373017426635996e-06, \"value\": 0.0}, \"206\": {\"effect\": 1.2869529183680235e-05, \"value\": 0.0}, \"207\": {\"effect\": -7.013475102497844e-05, \"value\": 0.0}, \"208\": {\"effect\": -6.023145868197397e-06, \"value\": 0.0}, \"209\": {\"effect\": -4.925365537631287e-05, \"value\": 0.0}, \"210\": {\"effect\": -0.0004990462608751387, \"value\": 0.0}, \"211\": {\"effect\": 0.00023844087027227333, \"value\": 0.0}, \"212\": {\"effect\": -6.5922250197070036e-06, \"value\": 0.0}, \"213\": {\"effect\": 0.00010594673070956671, \"value\": 0.0}, \"214\": {\"effect\": 6.834901090248217e-06, \"value\": 0.0}, \"215\": {\"effect\": -0.000497266758936812, \"value\": 1.0}, \"216\": {\"effect\": 0.0002853141069126418, \"value\": 0.0}, \"217\": {\"effect\": 1.548206810695829e-05, \"value\": 0.0}, \"218\": {\"effect\": -4.3393096722286474e-05, \"value\": 0.0}, \"219\": {\"effect\": -2.0661073733734278e-05, \"value\": 0.0}, \"220\": {\"effect\": -0.0001082651130558381, \"value\": 0.0}, \"221\": {\"effect\": 0.0002927908502018684, \"value\": 0.0}, \"222\": {\"effect\": -1.6805450296354673e-05, \"value\": 0.0}, \"223\": {\"effect\": 4.947145292926693e-05, \"value\": 0.0}, \"224\": {\"effect\": 2.0878960410113985e-05, \"value\": 0.0}, \"225\": {\"effect\": -4.793659445340345e-05, \"value\": 0.0}, \"226\": {\"effect\": 5.402683831424565e-07, \"value\": 0.0}, \"227\": {\"effect\": -5.24390034770079e-06, \"value\": 0.0}, \"228\": {\"effect\": -2.6608003102984246e-05, \"value\": 0.0}, \"229\": {\"effect\": 4.7646609073867036e-05, \"value\": 0.0}, \"230\": {\"effect\": 0.00018431152221302027, \"value\": 0.0}, \"231\": {\"effect\": 0.00014444867169368492, \"value\": 0.0}, \"232\": {\"effect\": 2.6331134027907034e-05, \"value\": 1.0}, \"233\": {\"effect\": -5.6257918315398564e-05, \"value\": 0.0}, \"234\": {\"effect\": -3.0053798143396906e-06, \"value\": 0.0}, \"235\": {\"effect\": 3.1186650163485274e-07, \"value\": 0.0}, \"237\": {\"effect\": 5.174715935747903e-06, \"value\": 0.0}, \"238\": {\"effect\": 0.00030864030523927006, \"value\": 0.0}, \"239\": {\"effect\": 0.0037932862245782907, \"value\": 1.0}, \"240\": {\"effect\": 1.0846811301762273e-05, \"value\": 0.0}, \"241\": {\"effect\": -2.1282311264510847e-06, \"value\": 0.0}, \"242\": {\"effect\": 9.410597505806305e-05, \"value\": 0.0}, \"243\": {\"effect\": 0.0014474522855861252, \"value\": 0.0}, \"244\": {\"effect\": 5.412484042922194e-07, \"value\": 0.0}, \"245\": {\"effect\": 4.260727701887548e-06, \"value\": 0.0}, \"246\": {\"effect\": 2.5774173625677208e-05, \"value\": 1.0}, \"248\": {\"effect\": 6.7426648455753294e-06, \"value\": 0.0}, \"250\": {\"effect\": -3.213315279216645e-07, \"value\": 0.0}, \"251\": {\"effect\": 8.004242888923441e-07, \"value\": 0.0}, \"252\": {\"effect\": 7.27230555146753e-05, \"value\": 0.0}, \"253\": {\"effect\": -1.0324307248027413e-06, \"value\": 0.0}, \"254\": {\"effect\": 1.8828893910490826e-06, \"value\": 0.0}, \"255\": {\"effect\": 2.8471447702644426e-07, \"value\": 0.0}, \"256\": {\"effect\": 3.1898422208646773e-06, \"value\": 0.0}, \"257\": {\"effect\": 4.299207012629146e-06, \"value\": 0.0}, \"258\": {\"effect\": -5.8607716295904545e-05, \"value\": 0.0}, \"259\": {\"effect\": 1.1818836222468685e-05, \"value\": 0.0}, \"260\": {\"effect\": -0.00011586938353512803, \"value\": 1.0}, \"261\": {\"effect\": 2.6586280563258884e-05, \"value\": 1.0}, \"262\": {\"effect\": -5.5812070615559644e-05, \"value\": 0.0}, \"263\": {\"effect\": 0.00011812308413248133, \"value\": 0.0}, \"264\": {\"effect\": 6.150085709409061e-05, \"value\": 0.0}, \"265\": {\"effect\": 8.255345729978562e-06, \"value\": 0.0}, \"266\": {\"effect\": 2.1869865489197905e-05, \"value\": 0.0}, \"267\": {\"effect\": 3.584265246608833e-05, \"value\": 0.0}, \"268\": {\"effect\": 0.00010932952108265818, \"value\": 0.0}, \"269\": {\"effect\": -0.0010339738329775189, \"value\": 0.0}, \"270\": {\"effect\": -6.530271292795286e-05, \"value\": 0.0}, \"271\": {\"effect\": 0.00012429202912554437, \"value\": 1.0}, \"272\": {\"effect\": 0.0004322790957038503, \"value\": 0.0}, \"273\": {\"effect\": 5.984590370621492e-07, \"value\": 1.0}, \"274\": {\"effect\": 1.8635081676021198e-07, \"value\": 0.0}, \"275\": {\"effect\": -4.394515338632386e-06, \"value\": 0.0}, \"276\": {\"effect\": 7.195837766298021e-05, \"value\": 0.0}, \"277\": {\"effect\": -2.0581652200129445e-05, \"value\": 0.0}, \"278\": {\"effect\": 6.966665861247138e-05, \"value\": 0.0}, \"279\": {\"effect\": 8.219316839803269e-05, \"value\": 0.0}, \"280\": {\"effect\": 0.000573399778534544, \"value\": 1.0}, \"281\": {\"effect\": 1.0373173315230566e-05, \"value\": 0.0}, \"282\": {\"effect\": 3.814807737812928e-05, \"value\": 1.0}, \"284\": {\"effect\": 0.0001572840972769493, \"value\": 0.0}, \"285\": {\"effect\": 2.152872500347267e-05, \"value\": 0.0}, \"286\": {\"effect\": -6.448192480308808e-07, \"value\": 0.0}, \"287\": {\"effect\": 1.036981791440814e-05, \"value\": 0.0}, \"288\": {\"effect\": 0.00021185028782574704, \"value\": 1.0}, \"289\": {\"effect\": 9.368324659410872e-05, \"value\": 1.0}, \"290\": {\"effect\": 5.42637538064263e-05, \"value\": 0.0}, \"291\": {\"effect\": -1.7985448909244993e-05, \"value\": 0.0}}, \"plot_cmap\": \"RdBu\", \"labelMargin\": 20}),\n",
       "    document.getElementById('iZV9CQP3KSHPY3DWMPQ5M')\n",
       "  );\n",
       "</script>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shap.force_plot(explainer.expected_value, shap_values[0], X_train_enc.iloc[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [],
   "source": [
    "# shap.force_plot(explainer.expected_value, shap_values[0], X_train_enc.iloc[0], matplotlib=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Above: for this particular training example, we can see the main factors pushing it from the base value (average over the dataset) to this particular prediction. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note: a nice thing about SHAP values is that the feature importances sum to the prediction:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11.94633015451298"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rf[1].predict(X_train_enc)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11.946330154512983"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shap_values[0].sum() + explainer.expected_value"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is the case for classification as well, but for the \"raw model output\" rather than the probability itself, because the SHAP values do not necessarily sum to something between 0 and 1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 540x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.dependence_plot(\"GrLivArea\", shap_values, X_train_enc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- When `GrLivArea` (above grade living area) increases, the shap value also increases -> that makes sense.\n",
    "- But this type of plot also allows us to visualize non-linear or even non-monotonic behaviours.\n",
    "- Note: shap automatically selects another feature -- in this case `OverallQual` -- for colouring."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x684 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values, X_train_enc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- This plot orders features by importance (average SHAP value magnitude).\n",
    "- Each example is drawn.\n",
    "- We can see again that the prediction is higher when `OverallQual` is higher.\n",
    "- There's also a summary of the summary:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x684 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values, X_train_enc, plot_type=\"bar\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Going back to the `feature_importances_`, we see something similar:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcgAAAD9CAYAAAA4YedAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdebyXc/7/8cfTKS2DFhXJcjSiMRhjjiFLylgyGrLMyNi3yBjEF2lQkf1nyWBIqOxLyGCKpEK2Y5tsGUuopAWVNp16/f54vz+5ztV19s/p1PG6327X7dPnut7X+3pfR3qd9/t6X++XzAznnHPOlbZOXTfAOeecWxN5gHTOOecyeIB0zjnnMniAdM455zJ4gHTOOecyNKjrBrj8adWqlRUWFtZ1M5xzbq3y5ptvzjGz1un9HiDrkcLCQoqLi+u6Gc45t1aR9EXWfh9idc455zJ4gHTOOecyeIB0zjnnMuTlGaSk/YA+wO+BXwBfAo8DV5nZd/m4Rm2QZMBAMxsQvw8A+puZUuVaAOcDhwJbAIuA14HrzOy5Wm7j8cDdwJZmNrW8spOnz6Ow79O12RznnFvjTL3qwFqpt8Y9SEn9gDHAEuBkYH/gNuB44A1Jm9X0GnUptv8N4CRgCNANOBFYCDwr6fw6bJ5zzrlaUqMepKSuwCDgRjPrkzg0QdLjwJvACKBrTa5ThfY0MrOlea72HqAFUGRmnyf2PyHpBuAqSZPM7KU8X9c551wdqmkP8nzgW+DC9IEYTK4CukjaRdL7kkamy8VjJqlHYt9vJD0p6TtJiyW9LGnP1HnDJE2T1EnSJEmLgWvisZ6SxkmaLekHSW9LOq6qNydpF2AvwlDx5xlFLgS+iz+HZLumZtQ1XtL4xPfGkm6Q9F5s40xJ/5bUsartdM45l3/VDpCSGhCCx3NmtqSMYk/Gz70JPbHu8Xle0tGEIPtMrHcnYBLQEjgFOAyYC4yV9LvUuc2AB4EHgAOA++P+9sCjwFFAD+DfwFBJp1XxNv+Quo9S4n0/B3SVVNWfZSNgfUIP/ECgN9AYeFXSxlWsyznnXJ7VZIh1Q6AJMLWcMrljmwFXApcDfwFuB5DUEOgJPGRmP8ay1xIm+eyd2ydpDPAecDEh4OWsBxxtZqOSFzWzK3J/joFrPNCWEIRuq8I95p6fTi2nzNTYjg2B2ZWt2MzmEZ7Z5tpZQHiW+w1wJHBDZeqR1AvoBVCwwSoLQTjnnKummgyxquIiPzGzr4AJwDGJ3d2AVoTnlEhqQuiVPgKskNQg9lQFjAU6p6otAZ5apWFSB0kPSJoOLIvbycA2VWkzlbvHXJkVVawbSX+R9Jqk7wn3spAQbCvdTjMbYmZFZlZU0LRZVZvgnHOuDDUJkHOAxUBhOWVyx76KnyOA3SVtGb8fA3xiZq/G7y2BAkJPcVlqOwNokRrKnGVmy5MXlLQeYdjzN0BfYE9gZ+AuwrBmVeTaXVhOmS2ApWY2tyoVS/oT8BDwIfBXYJfYztmEoVbnnHN1qNpDrGZWImkisK+kxmU8hzwofo6LnyOBW4CjJQ0G/kQYes35ntATu4XYq8y4brKnZhlFOhGC1p7JmaWxJ1pVzxOeER5EGPotRVJjYF9CzzhnCbBuRl0bEp6l5vQk/HJwfKK+hoRfEpxzztWxms5ivZbwD/8V6QOxl3gBMNHMXgMwswXAKELP8c+EntI9uXPMbCHwIqH395aZFae3SrSpafxclmhLC+Dgqt5c7Nm+CPRN9HqTriQEtH8l9n0BbCSpVeL6v2TVYdOmhGHVpGMIPWjnnHN1rEbvQZrZ85IuAS6VVEjo9X0H7EQY3pxH6WeOxDJHAgOBlzJenzgHmAiMkXQn8DXhOeVOQIGZ9a2gWZOA+cAtkvoTVva5iDAkXJ2HdEcTJvm8KukaoBhoDhxLWFnnX2b2RKL8I8BlwH2Sro9tvzBeP2k00CO+S/kU8DvgTEIvulq2b9eM4lpaUcI5535uarySjpldRnjF4heEJdGeBU4nBMIiM/sydcpzwEygHYneY6K+twjP4uYCN8X6BgPbEwJnRe2ZDRxC6Ik9SujlDQXurfrdQWx/ETAMODW25wlCcOxtZqenyn8CHB7v7wnCO5LnAB+nqr6DMKv3CMJrKAcShpznVaedzjnn8ktmWY/xXHkk/ZYQrEcDR6Sei9aZoqIi83yQzjlXNZLeNLOi9H7P5lENZvY2YZLNIcDNddwc55xztSAv2Tx+jszsafzn55xz9Zb3IJ1zzrkMHiCdc865DB4gnXPOuQweIJ1zzrkMHiCdc865DHU+C1NSJ+AsYA+gDWEt0ymEdwxvNbOvKzi/C/ACsK+ZjS2jzACgv5lVKQNJqo6hwEnADWZ2TnXrqU2Tp8+jsO/Tdd2MOjPVVxFyzuVRnfYgJZ0LvAy0JiwHtw/h/cIxhByHd+XpUkMJi5hXS0zD9ef49ahqLnzunHNuLVJn/9BL6kpY7HywmfVJHX5G0pX8FJSyzm/Iqot9ZzKzacC06raVsCDABsAzwB8JeSxXyUOZ0cZGZra0Btd1zjlXR+qyB3kBYQHvC7IOmtlCMxsGIKlQkkk6XdI1kmYASwmLhldI0gBJlvj+vqSRGeV2idfpkTp0HGER9uMJOTCPLesakraTNEbSD8DDieOHSnpV0iJJ30t6RNLmqTp6ShonabakHyS9Lem4ytyjc865/KqTABmHKPcCnjOzH6tw6j+ArQnDr4cQnldWxz1A95gGK+lo4FtCTzHX1k0IQ78PxYXQnwAOyjg3ZxQhP+RBwA2xjtMIuTA/ICxkfiqwHTBB0vqJc9sTFlg/CuhBWMR8aDzfOefcalRXQ6wbEnJBpjN9rJLY2MySw6jfAIdYYoV1qVrzbu4jZNL4C3B7rKch4fnnQ6mgfQzhF4lcAufhhHRdRwC3ZdR9k5kNTrRvPeBq4G4zOzGx/zVCho+TgBvjvV6ROL4OIc1WW6B3GddCUi/CLwwUbNC6MvfunHOuEupqiDUzqknamJDoeOWWCphPWB7Sj5jZV4ReXjJXZTdC7sYRqeLHAv8zs1fi97HADDKGWaPHU987EZ5f3iepQW4jPBP9COicKyipg6QHJE3np5/ByayabDl5L0PMrMjMigqaVifdpXPOuSx1FSDnEIZHN8/Yv3Pc7sg4r9xXPqpoBLC7pC3j92OAT8zs1VwBSTsD2wKPSWouqTmwPvAY0EnS1pVoY5v4OZZU8CfkuNwwXms9Qq7M3xCSTe9J+DncBTSq2a0655yrqjoZYjWzEkkTgX0lrZsb0ozDqcUAkrpnnZrHZowEbgGOljSYkKz4ylSZ3ASZC8ieTHQs4fWU8to4N34eD7yfUceC+NkJ2ALY08xeyh30V0qcc65u1OU/vtcQekxXA+nXPGqdmS2QNIrQc5xBeCZ6T+64pHUJzyRfI/To0m4AjpF0cQXDvpMIQXArMxteTrmm8XNZog0tgIMrcTvOOefyrM4CpJk9L6kvcJWkHQhDnp8TAtXWhOC0kMr3GveMQ6BJJWb2RDnnjCBMuBkIvGRmnyeOdScMf55rZuPTJ0q6HfgX0IWwkk8mM5sv6TzgFkmtgf8A84B2hJm8483sfkIgnR/L9Qd+QeidzgEq9XBx+3bNKPbVZJxzLi/qdPjOzK6R9DJhqbkrCCvq5Jaaewi4zcyWV3Km6iUZ+xYC65VzznPATEKwujR17DhCz++RMs59ALg+liszQAKY2e2SvgLOA/4KNASmAxOBd2KZ2ZIOAa4jvOoxAxgMtAT6l1e/c865/FMeJoW6NURRUZEVFxfXdTOcc26tIulNMytK7/dsHs4551wGD5DOOedcBg+QzjnnXAYPkM4551wGD5DOOedcBg+QzjnnXAYPkM4551yGchcKSCYZLscXZlZYmYvFdUUvAsaZ2cTKnJNRx6vA92bWLX7vCHyYKjYHmAxcbmbPV+c61WzbPsBuZpZedABJHQiLGewBbAJ8D3wCjEmWlzQT2Cij+ufNbJ/yrj95+jwK+z5dgzuovqm+go9zrp6paCWdTqnvjwPvAgMS+5ZW8Xr9gRLCKjL5NAAYQ0iltRFhdZ5nJO1qZm/n+Vpl2Qf4P1Kr8kjairAI+yeE+/8S2BjYFTgsXR54klUXTp9XC+11zjlXhnIDZDL1E4CkpcCc9P41xKepVFXjgO+AHsDqCpBl6UVIWdXVzOYn9j8YEyOnzV5Df8bOOfezkddnkJJOkDRZ0lJJsyXdLalNPNYYWByLXibJ4tY3Hu8k6XFJ0yQtlvSRpIGSqpsLcTGhp9ow0b5mkm6V9FVs4zeSno09PCQ1jm26WFLfWG6hpFGSWkpqK+kxSfMlfSGpT6LuqwgpsQoS97YkHm5JWBf2h3QjzWxFNe/POedcLcrbYuWSziQsrn0vcD4hGfIVwO8lFREWId8LmADcDgyLp34ZPwuBN4A7CYFke8Izuy0IuRQrsk4id+LGwIWE4dbHEmVuBvYmPAf9FGgFdAY2SNV1MqHXeSqwKSG11bBY72PArYRFx6+X9K6ZjSPkltwk7t8j1pMLfq8DJwH3SboFeD2XA7MMSueBjLkynXPOrSZ5CZAxd2J/woSTYxL7PyVkzDjGzIZIej0empYeQjSzBxLnCXiJ0Au8TdLfzWwB5Rset5zFwIlmlly9uxMw3MzuTuxLBtCcBcChud6dpB2B3sB5Zvb/4r6JwCHAnwmTjr6SNCPeS3p49E7C88YTCGm8fpT0CvAEcGtGsDwxbitJKpVIObG/F2EIl4INWmfcinPOuerI1xDrdoRhxHuTO81sLPANoedYLkktJF0n6TPCxJ9lwB1AAfDLSrThEmDnuHUj5Hq8O6aQynkD6CXpAkk7lfH8D0KgTw59fpTbn7i3Hwn5KzerqGFmttzMTgS2Ikweegz4FaFnOiljGHlU4l5y2ztl1D3EzIrMrKigaaXSRjrnnKuEfAXIlvHz64xjMxPHy3MvoYd1A2E26M7AOfFY40qc/7mZFcdtjJmdRpgpe2OizKnAXfHzTeAbSdfG56NJ36W+/1jO/sq0DQAz+9TMbjKzIwk5KG8Efgcckyo6J3EvuW2V55fOOedqT74C5Lfxc+OMYxsDc8s7WdL6wAHAFWb2TzObGIdGl5R3XiW8D2wuqRmAmc03s/PNrD3QHvh/QB/C88rVKj5TzL3Kse3qvr5zzrny5StAvkcIkj2TOyX9gfBO4oS460fAgCap85sSJtQsS5wr4Lgatmt7YBFhBmkpZva5mV0NfEwYIs6HpYRZrA2TOyVtWkb5jvEzq+ftnHOuDuVlko6Z/ShpIDBY0t3AQ4RZrJcDHxCfTZrZCklTgIPje4rzCBN2Zkp6B+graQ5hlZlehFmmlfVLSbvGP7cEDgW6ANfnZoBKKgYeJvQsFxKGcjsSZt/mwwfx8zxJY4ESM3sLGBDbNpwwO3YF8BvCayGzCM9La2z7ds0o9hVtnHMuL/L2moeZ3SRpAeG54V+B+cDTwPlmtjhRtDfh2dszwLqE4c2rCLNBbyW8ArIQeIDwakXWLNMsA/hphZ95hNc4TgWGJspMjG3bkjD551PgDDO7vdI3Wr6RhIlF5wCD+OkZ5d2EoHg84RWTJoRe49PAZWb2TZ6u75xzLk9kVpnlVt3aoKioyIqLiysu6JxzbiVJb5pZUXq/Z/NwzjnnMniAdM455zJ4gHTOOecyeIB0zjnnMniAdM455zJ4gHTOOecy5CVAxlyOD8Zcjj/GfIlvSLpMUtt8XGNNEO/zYUkz4n3OlfScpOMkFdR1+5xzzuVPjRcKkHQucC3wAuEl+M+A9YDdCKvhFBHWWV2rSTobuB4YR1gB5wugBbAf8C/C6j+j6qyBwOTp8yjs+/RqveZUX7nHOVdP1ShASupKCI6DzaxP6vAzkq4krJBTI5IamdnSmtZTg+t3JgTHm83szNThUZKuB36Rh+vU6X0655z7SU2HWC8A5sTPVZjZQjMblvsuaaCktyTNkzRH0rjE+qm5Ml0kmaRDJd0haTYhpySStpJ0j6TPJS2W9Jmkf0lqkb62pLMkTZW0RNLrknaL34elym0p6T5JsyUtlfROKockQF/CYuznl3Gfn5rZf2N9rSXdLuljSYskfSXpfkntUtcdEO9zO0ljJP1AWCcWSftLmhR/Tj9ImiLpkqxrO+ecqx3V7kFKakBIhPxYTB5cGe0I+R6nEXpcRwMTJRXlAkzCP4H/EHIl5nIubhLPPZuQm7E90I+wrmunRNtOJqz3eifwCCHh8v1A89Q9bAa8RlgwvA8wGzgCGCmph5k9GZ8tdgGeMLPKpN9qSUjTdWGsbxPgXOBlSR0z6hgV23k1sEJSe+BJ4FHgUsJ6rh3ivTrnnFtNajLEuiEhcH2ZPhCD50q5bBpmdnKiTAEwmpBZ4yTgrFQ1ryfLx/MnEhYcz9UxCfgEeFHSb83sbUnrAP2B/6SuN5OwmHjSAEKarb3MLJezckwMnJcSAlUrwuLiX5T5kyjdxinJe4n3+TLh53QA8HjqlJvMbHCi/OGERdx7m9n8uHtcZa7tnHMuf2oyxKrMndLGhLyOK7dcwJS0j6QXJM0FSuLxrYFtMqpKBxIkrSupn6SPJC2O578YD+fq2DRuj6ROHxWvmdSN0PucJ6lBbgPGAL+RtEHZt182Sb0lvRuHTUv46ZeIytznO4T7elDS4ZLaVHCtXpKKJRUvXzSvOs11zjmXoSYBcg5hKHHzjP07x+2O3E5JOxGC0Q+EHuOuscy7/DSEmpSVRPhKQq/vXuBA4PeEvI8k6si9VjIreaKZLY9tS2oDHEsqoBMmHkHoJc8FFgNbZLRnFZL+TkjbNTa27feEe022ManUfZrZJ8D+hP829wAzJb0maa+s65nZEDMrMrOigqbNKtNE55xzlVDtIVYzK5E0EdhX0rq555BxOLUYQFL3xCmHEXpTh5rZstzOOMHm+6xLZOzrCYwws0GJ89dLlckFnFI9rzjUmU7APJfQA7068yZhRrzP8YT7rMws057A82Z2buLaW5ZTfpX7NLMXgBckNQJ2Jwz3Pi2p0MzSQd4551wtqOks1msIQaesAJPUFFhOIiBI2ptVe6AV1bEste+E1PdpcUu/XtKDVX8hGA3sALxvZsUZWy4YXkXoTV5LhjgTdocqtLFSzGypmY0j/Jx/QUj07JxzbjWo0XuQZva8pL7AVTFAjAA+Jwwlbk3oTS0kBMXRhNmnwyTdHY9fDEyvwiVHA8dJmkyYnHMoYUGCZJtWSBoI3CFpKOFZZHvCqxrzgBWJ4pcArxNm0t4MTCW8/L8d0N7MTox1TpR0DnC9pF8BwwjPFVsAfwBOBv4K/De28QJJ/WLdewOHV/YGJZ0GdCYMR39F+AXkQmAG8F55527frhnF/uK+c87lRY1X0jGzayS9TJi5eQXQmvBscgrwEHBbfP43RtKZwDmE4db3CM//LqrC5f5OmBx0efz+DHAkIRAl2zQ0Dr32IbxK8h5wFPBvQpDMlftSUhHhuWau7XNj+eGpOm+U9Hqs8/8RAtcCwnDyqbFuCMOhzWO5xsAEwjPFzyp5j+8SZrteSRgm/hZ4CTjKzBZXsg7nnHM1JLOsR331j6SdCYH0WDO7p67bUxuKioqsuLi4rpvhnHNrFUlvmllRen+Ne5Brojgp5m+ECTjzgV8RFhT4nFXfhXTOOedWUS8DJOG1jO0IQ7gtCKvujAX6mtmiumyYc865tUO9DJBmNpOwCIBzzjlXLZ4w2TnnnMvgAdI555zL4AHSOeecy+AB0jnnnMuwVk7SkbQpIUlzEfAbQjqqLc1sahXqKASOJ6zt+lnq2HhCrsu06Wa2aSwzDOhiZoWVvN5ehBVxdiDkjJxDWJDgHjO7L9Gmz8uo4nIzK3dRhcnT51HY9+nKNKeUqb76jnPOrWKtDJDAVsBfgDcJ7zruV406Cgl5I18ie5Wb/xJWyEmqaKHyTJJ6AI8R8kueQVgdZwtgX+CPwH2pU66MZZOmVefazjnnqmdtDZATzWwjAEknU70AWZEFZvZqTSqQ1JCQweQc4G3gECu9dNHwmOA57bOaXts551zNrJXPIM1sRUVlJG0sabikGZKWSvpa0lOS2kjqArwQiz4nyeLWpbptklQY6zhd0jWSZhB6nM0JQ6qzLGNdv8rci3POudVvbe1BVsY9hGHM8whZMTYiZN5oCrxFWIruFuBM4I14zgfJCiSlfz7Ls4Jcyj9ifb2AAsLC7a8TspAMAh4GJldQzzrpa8c8m84551aT+hwgOwH9chNgokdyf5CUC4YfljGcuTur5nU8BRhawXW/ITWUGlOCbUUInv8A5kt6AbjfzB7OqOP2uK0kqWFWkJTUixCMKdigdQVNc845V1n1OUC+AZwnScA44L1K9P6S3iXkeUyaWonznkhfx8xmAZ1jRpFuwC7APsDBkvY1s1NSdQwCRqXqyOxBmtkQYAhAo7Ydfh6pWZxzbjWozwHyCMIs1fOBG4GvJd0GDKrkc78fzKw6uaO+LuuAmb1BHM6V1Bx4FDhZ0mAzSyZD/qKa13bOOZcna+Ukncows1lm9jczawd0BIYBA1n11Y28X7pShcy+B26KX7etveY455yrjnobIJPMbIqZ9SOkvdou7s6909iktq8vabMyDnWMn2X2Op1zztWNtXaIVdLh8Y+/i58HSJoNzAbeIeR/vA/4iDDZ5mBCbshnY/mPCe8onijpW0LAnGJmC2qhuc9ImgU8BEwhBOXOwLnAK8DL+bjI9u2aUeyr4jjnXF6stQGSxIzU6Nb4OQHYn/AqxymEVz1WEALTUWY2CsDM5ko6g7Bk3QTCKxldgfG10NZBwGHxWm0BEZaUuw640t+FdM65NY+qNrHTrcmKioqsuNjn9jjnXFVIetPMitL7fxbPIJ1zzrmq8gDpnHPOZfAA6ZxzzmXwAOmcc85l8ADpnHPOZfAA6ZxzzmXwAOmcc85lqNFCAZI6AWcBewBtCLkPpwCjgVvNrN4soSZpKHAScIOZnVPX7ckyefo8Cvs+XaVzpvrKO845l6naPUhJ5xKWSGsNXERI39QTGEPIT3hXPhq4JpDUBPhz/HpURiJl55xz9Uy1/qGX1BW4FhhsZn1Sh5+RdCU/BZRqk9TIzJZWXLLWHQJsADwD/JGQ0/Gpik5ag9rvnHOuiqrbg7wAmBM/V2FmC81sWO67pIGS3pI0T9IcSeMk7Zo8R1IXSSbpUEl3xIXHv4nHtpJ0j6TPJS2W9Jmkf0lqkb62pLMkTZW0RNLrknaL34elym0p6T5JsyUtlfSOpEPKuN/jCJlAjgcWA8dmXHdAbP92ksZI+gF4OHH8UEmvSlok6XtJj0jaPFVHz/izmS3pB0lvSzqujDY555yrRVUOkHF4cS/gOTP7sZKntQNuAHoQgswsYKKkHTLK/pOwmPcxsSzAJsA04GzCQuSXAn8g9OiSbTuZkBx5LCF7xzDgfqB5qtxmwGvAb4A+wEGExc1HSjooVXYTwvDxQ2Y2G3gCOCgrOEejCIufHxTvGUmnASOBD4DDCTkptwMmSFo/cW57QhLlo+LP6t/A0Hi+c8651ag6Q6wbAo2BL9MH0s/mzKwkfp6cKFNAmMTzPmHSy1mpal5Plo/nTwQmJuqYBHwCvCjpt2b2tqR1gP7Af1LXm0kITkkDCEF4LzObG/eNiYHzUuDJRNljCL9IjIjfhwNHAkcAt6V/BsBNZjY4cf31gKuBu83sxMT+1wgpt04iBHXM7IrE8XUImUXaAr3LuBaSehGe+VKwQeusIs4556qhOkOsytwpbUzIu7hyywVMSftIekHSXEIOxmXA1sA2GVU9nlH3upL6SfpI0uJ4/ovxcK6OTeOWToM1Kl4zqRuh9zlPUoPcRphg9BtJGyTKHgv8z8xeid/HAjPIGGYto/2dCM8v70tdaxohV2XnxH12kPSApOn89HM8meyfEwBmNsTMisysqKBps7KKOeecq6LqBMg5hNc5Ns/Yv3Pc7sjtlLQTIRj9QOgt7RrLvEvoiaZlvRpyJaHXdy9wIPB74NB4LFdH2/g5K3mimS2PbUtqQwhwy1LbtfH4hrHtOwPbAo9Jai6pObA+8BjQSdLWlWh/m/g5NuN62yeutR7wHGHYty+wJ+HndBfQKOM6zjnnalGVh1jNrETSRGBfSevmnkPG4dRiAEndE6ccRujBHWpmy3I74zO877MukbGvJzDCzAYlzl8vVSYXmNokd8Yh3VapsnMJPdCrM28y9BAhTM6BMBkpa0LSsYRXXJLS7c8N4R5PGFZOWxA/OxGSO+9pZi/lDvorJc45Vzeq+4/vNYTeztWESS7laQosJxE4JO1N6IF+XsnrNSX0uJJOSH2fFrc/A3cn9vdg1fscTQhI75vZ4qwLSlqXEJhfI/To0m4AjpF0sZWfdXoSIQhuZWbDyynXNH6mf4k4uJxznHPO1ZJqBUgze15SX+CqOBN1BCHYNSY8W+wJLCQExdGE2afDJN0dj18MTK/CJUcDx0maTJiccyiwW6pNKyQNBO6Iq948QpgV2heYB6xIFL8EeJ0wk/ZmYCrQgjCztH2cTNOdMPx5rpmNTzdI0u3Av4AuwAtlNdzM5ks6D7hFUmvgP7E97Qizgceb2f2EQDo/lusP/ILQO50DVOrh4vbtmlHsK+M451xeVHslHTO7hvCcbC5wBeEZ26OEYcmHgA5mttzMxgBnArsTXq4/kTA0+UkVLvd3wszSy2Pd6xNmkqbbNJTQo92XMDnnJMIrE0YISrlyXwJFhOegVxB6w/8iBKxxsdhxhJ5fetJPzgOEdyIrfE/RzG4nvPaxDXAPIUgOJPyC8k4sM5uwIEEB4ed4JTCU8NzVOefcaqbyRwfXfnGizevAsWZ2T123pzYVFRVZcXFxXTfDOefWKpLeNLOi9P56NQFE0pbA3wgTcOYDvwL6EYZ/0+9COuecc2WqVwGSMOS5HWEItwVhebixQF8zW1SXDXPOObd2qVcB0sxmEhYBcM4552rEEyY755xzGTxAOueccxk8QDrnnHMZPEA655xzGWo0SUfS8ZRe1m0FMBN4GbjYzKbUpP4qtmMdM7srtb8LZa9yc4qZDZW0FfA/4Bgzq/JL+ZK6Elbr2YEwc3YOMJmwduwDsUzuGlkGmqTJrJ4AACAASURBVNmAWO4Ewgo+RYSl+O5Mp/4qz+Tp8yjs+3Slyk71FXecc65c+ZrF+mfCOqgFwC8JS8k9L+nXZjav3DPz43jCvdxVxvEzgTdS+z6Nn18R1mWtyso+AEg6jLDSzuPA6YTF17cgrORzAGG1naRBQDqCTUv8+RhCkH2WsFyfc865OpKvAPmOmeUCzMuSZhCWb9uNsKxaXfvQzF7NOmBmS4HMY5VwLlBsZoel9g+LCY/TPi2rHdE+ZrYCQNKfqtkm55xzeVBbzyDnx8+GAJK2lvS4pFmSlkj6UtIjiYTKXSSZpB6Sbpf0raTvJN0gqUDSzpJekrRQ0vuS9s9dSNJ4whqqu8c6LO6rFElbxXOOTuy7V9JUSb+L110k6WNJp6RObwl8k1VvLtBVRXXOcc45VzvyFSALJDWQ1EjSrwgLgM8CxsfjTxGyV/QG9ic8s1uacf0bCVlAjgBuJmQBuZGQLeQuQhaPbwkJjHM5Hk8H3gb+Sxgq7RT3Ja0T25fbCipxT80JC4UPJ6ScehsYImnPRJnXgT9KulTS9pJUQZ3pdtSrhRqcc64+ydc/0B+lvs8AusdUT62ADsDBZvZkosz9GfWMM7Nz4p+fk3QgcAaJJMKSviZk4TgQGG5mH0iaDzQoZ/hyTOr7dGDTCu6pGfAnM3sxXvdFYD9CFpEXY5nzCSm1Lo7bfEnjgPvM7NGMOu+MW1JFQbVcknoBvQAKNmhdk6qcc84l5CtAHkKYbCJgE0JQe0ZSZ0Lw/IyQO3IjQv7DsmZ0pp9XfgRsnQuOiX0Am1WhfX8j9PZyfqzEOQtywRHAzJZI+oQwuzS3b2bsUe5M6BnvSpig00PSbWbWO1XnQEJvOm/MbAgwBKBR2w71OzWLc86tRvkKkO8lJukg6VnC7NABZnaEpH2BAYQchxtK+hy41sz+larnu9T3HwkzQ1cysx/jSGbjKrTvYzOrah6obzP2LU1f10K+sNfjhqQWhMwhp0m6ycw+TBSfWo12OOecqwO1MknHzBYTeo07xO+fmdmxQGvgt4SkxLdKOqA2rl+XzOw7wvNTCOm2nHPOrYVqJUBKakp4H3J2cr8F7wC554zb5emSS4Emeaqr0iSVNczbMX5+vbra4pxzLr/yNcS6Y5yMI6At4RlkS+CfknYABgMPEV7GLyC82F9C6EnmwwfA6ZKOICwAsGA1reLzrKTphHv7GGhKeOWkD/AS8FpVKpP0a37qdTYCCiUdHr+/YGZzyzt/+3bNKPYVcpxzLi/yFSAfSfx5NvAe0M3MxkhqA3xJ6DVuCiwhLMXW3czezNP1rwa2AYYC6wETgC55qrs8lxJePbkQ2JjwC8JnwLXAVdV4r/FI4B+J73+IG8CehKDrnHNuNVCYY+Lqg6KiIisu9jlAzjlXFZLeNLOi9H7P5uGcc85l8ADpnHPOZfAA6ZxzzmXwAOmcc85l8ADpnHPOZfAA6ZxzzmVYowKkpEdjLsiNMo51kbRC0lmruU0dE3kmc9tsSeMk/aHiGjLrbBzr6ZvYd5WkJYnvrSQNiAstOOecW83WtHyEfwPeJ6xl+ufcTklNgDuAV4B/1k3TGEBImyVgI+AsQsaSXc3s7SrWtZSQt/LLcsq0AvoTVh/6b2UqnTx9HoV9ny7z+FRfZcc55yptjQqQZvaNpLOBeyT1MLMn4qEBhFV4uldjdZpqiUmVk7kaP03mm4x5H78DehCSKVdazABSVu5K55xza4A1aogVwMzuJeRMvFVSc0k7EZapG5BeX1XSEZJel7RI0neSHpTULlXmWEkT4rDoAklvSvprqkxuyPMSSRdL+oKQaqtDOU1dTFhPtmGintNiPRun6k8Pn64yxJoq3xHIpcm6JzG027Oc9jjnnMujNaoHmXAaYaj1BmBH4B3g/yULxJ7m9YSh1/5Ac8LaqC9I2tHMFsWiWwIPEoYqAboSgs66ZjYsdd1TgSnA2YQ1Y2cRUnQBrCMp9/PamLD+qoDHanqzGaYCPWO7BxCGdgHKSjTtnHMuz9bIAGlm0yX9HyH4LQN+Z2bLc8clNQcuB24zs9MT+98kZPY4Frgt1jUwcXwd4AVgM6A3MCx16RLCIus/Js7JBcjhcctZDJxYGwmQzWyJpHfj11JDu84551aPNW6INcfMhhLyKT5hZpNTh/ckpJa6T1KD3EbIpPEZ0DlXUNKvJD0saQYhAC4DjiZk/0h7OhkcUy4Bdo5bN2AEcLekQ6p9k3kgqZekYknFyxfNq8umOOdcvbJG9iATfoxbWpv4WVb6p89hZU/zOeBb4Ly4/0fCEOrhGeeVl+D481RvcYykDsCNwOPlnFerzGwIMASgUdsOnprFOefyZE0PkGXJJQ7+K9nP5ebHzz2BdkCPZHCT1DDjHICqBpj3gb0lNTOzeYTnlgDrpsptWMV6nXPO1bG1NUBOJDwDbG9mD5RTrmn8XJbbERM4/zFP7dgeWAQsjN+/iJ/bEd9xlNSIn5IeV8XS+NmkJg10zjlXPWtlgDSzb+MrEtdJ2oQwy3MBobfYFfiPmT0KvEgIXrdLuhTYgPAs8RvCe5VV8UtJu8Y/twQOBboA15tZSdz/MvAVcEMMjCuAv1O9Z73TCD3hoyRNIQTiT83su2rU5ZxzrorWygAJYGY3xfcVzyHMWi0ApgMTgMmxzAxJhwHXACMJQed6YAvCc8iqGBA3gHnAp4TXQoYm2vSjpD8RVgK6B5gDXEcI3FW6npktk3QycBnwPOG/1ZGEVz8ybd+uGcW+Wo5zzuWFwqIurj4oKiqy4uK8v3XinHP1mqQ3zawovX+Nfc3DOeecq0seIJ1zzrkMHiCdc865DB4gnXPOuQweIJ1zzrkMHiCdc865DB4gnXPOuQxr7UIBAJKOB+4GOpjZJxUUL6+eAcBEMxtXTpmxhCXjzjKzm6p7rdo0efo8Cvs+nXlsqi8g4JxzVeI9yKA/sHdZByVtRljCDuC41dIi55xzdcoDZOUcQ/hZPQPsJGm7ypwU12N1zjm3Fqr3AVLS0ZLelbRE0hxJ90hqmzieW2vvH5IsbgNS1RwLfMBP66kem3GdYZKmSeokaZKkxYQ1YHPHT0m1405JLVN1nCHpFUnfSvpe0quSfGzUOefqQL0OkJJ6ERYN/5CQfaMvsD8wQdJ6sVin+Dks/rkTiQXIYwaPbYARZvY/4BXgaEkFGZdsRlhM/AHgAOD+WMdVwK3AWOAgQvLmbsB/UvUUxmv/GTgCKAaeknRAdX8GzjnnqmetnqRTnhh4LgPGm1nPxP6PCGmwTgRuMrNXJQFMN7NXM6o6jpC26t74fThwG7AvMDpVdj3gaDMblbheISEgDjSzSxP7PwZeAv4EPAFgZv+XOL4OIYvH1sBpwH/KuM9eQC+Agg1al/XjcM45V0X1uQe5DdAGuC+508xeIiQ23quiCuIzxCOAcWY2Pe5+iJDMeJVhVqAEeCq1b1/Cz/k+SQ1yG/AaId9j58T1fifpKUnfxLqWxfO3KauNZjbEzIrMrKigabOKbsk551wl1dseJCGpMcDXGcdmJo6X5yCgBfC4pOaJ/WOAHpI2MLP5if2zzGx5qo428bOs11A2hJUzZZ8nPOv8O/AlIUheBvyqEm11zjmXR/U5QH4bPzfOOLYx4fleRXKvdNwSt7S/kHheCWQl15wbP/cDvivneDfCM8y/mNm03EFJTSvRTuecc3lWnwPkFOAboCdwZ26npN2ALYDrEmV/BJokT5a0EWFCzyjgxoz6HyAMsw7NOJb0HOEZ5uZm9lw55XKBcFmiDVsDuwPTMs9wzjlXa+pLgOwmaWZq3zzgEuB2SfcSJtm0Ay4H/kdYgSfnA+BASaMJvbwZhMDaALjBzCakLyhpOHC+pPZm9llZDTOzTyVdDdwsaRtgArAE2IzwfHGomb1AmOFaAoyQdB3QFhhIGGqt1LPi7ds1o9hXzHHOubyoLwHynxn73jez7SQtIswiHQX8QHjZ/3wz+yFR9gzgJuDfQCNCYDoE+BSYWMY17wIuIPQiB5TXODPrJ+lD4G9xM+ArwjPH/8Uy70s6CrgUeDJeuy9h6LVLefU755zLP5llPTZza6OioiIrLq7Mo1XnnHM5kt40s6L0/vr8modzzjlXbR4gnXPOuQweIJ1zzrkMHiCdc865DB4gnXPOuQweIJ1zzrkM9eU9SFdJ8+fPZ9asWSxbtqziws6VoUGDBjRu3JjWrVvTuHHjum6Oc7WiWgFS0n5AH+D3wC8Iq708DlxlZlnrja4RYnLkgWY2IH4fAPQ3M6XK/QI4k5CXsQPQkJAB5DngRjMra+Hx2mhzIfA5cIKZDSuv7OTp8yjs+/Qq+6fG1XXmz5/PN998Q7t27WjSpAkxzZdzVWJmlJSU8MMPP/Dll1+y0UYb0ayZZ5Jx9U+VA6SkfoTl2p4ATiYsCv47wqoyh0nqamZf5bWVq5GktoRl3zYBbibkbPwR2JaQQ3J34Ld11sAamDVrFu3ataNpU1//3FWfJBo2bEiLFi1o1KgRM2fO9ADp6qUqBUhJXYFBhF5Un8ShCZIeB94ERgBd89fEctvTyMyW5rnaewjroP7ezP6X2P+CpFuBg/N8vdVm2bJlNGnSpOKCzlVSkyZNWLo03/8LOrdmqOoknfMJPcYL0wfM7HPgKqCLpF0kvS9pZLpcPGaSeiT2/UbSk5K+k7RY0suS9kydN0zSNEmdJE2StBi4Jh7rKWmcpNmSfpD0tqTjqCJJvwf+AFyRCo65ezQzeyJRvqGkQZKmSvoxfg6S1DBRpjDe76mSLpX0taTvJf1b0qap6zeVdKukufE+ngRKlakpH1Z1+eR/n1x9VukAKakBsBfwnJktKaPYk/Fzb0JPrLukFqkyRxOC7DOx3p2ASYQExqcAhxFyJI6V9LvUuc2ABwmppg4A7o/72wOPAkcBPQiLjg+VdFpl7y/aJ3UfFRlOWFB8BNCdkCHkgrg/7UJgK8Iw7VlAJ+C+VJnbCcPW1wOHElJ23Y9zzrnVripDrBsSciZOLadM7thmwJWEZ5V/IfzDT+xZ9QQeMrMfY9lrCZN89s7tkzQGeA+4mBDwctYDjjazUcmLmtkVuT9LWgcYTxgm7Q3cVoV73Cx+flFRQUnbAUeSmPQDPCtpOXCZpKvM7L+JU74ws78mzm8NXCtpEzObEVNh/RX4h5ldlahvPaDMQC+pF9ALoGCD1pW6SeeccxWrSoCs0liKmX0laQJwDDFAElI3tSL0uJDUhNArvQJYEXupOWMJPcKkEuCpVRomdSCkieoMbMxPPePafDjSOX7em9p/L3AZ4b6SATI9vXRy/NyckH9yF0K7H06Ve5ByAqSZDQGGADRq26FaqVmyZr6uTlNrkMNy2LBhnHDCCfzvf/9jq622ymOratf48eMZP348l1xyCeus468jO7cmqsr/mXOAxUBhOWVyx3KzWEcAu0vaMn4/BvjEzF6N31sCBYSe4rLUdgbQIvYIc2aZ2fLkBWMP6zngN4Thzj2BnQn5GhtV4f6S7d6iEmVbxs+vU/tnpo7nfJv6ngveuZfI2sbPb1Ll0t9dPTB+/HgGDhzIihUr6ropzrkyVDpAmlkJIXnwvpLKejP4oPg5Ln6OBBYBR0vaAPgT4dlkzvfACkLC452zNjNL/guS1UPqRAhovczsHjObZGbFVO8dz7Hx80+VKJsLeBun9ue+z63itXOBdqPU/vR3txZbtmwZnoPVubVDVcd2riU8i7wifSD2Ei8AJprZawBmtgAYReg5/pnQW1oZIM1sIfAioff3lpkVp7dKtCn3Ut/KpWHixKAqv45hZq8DzwP9JGWO10nK1TshfvZMFckNC0+s4uVfI/yy8JfU/nT9rhxdunRhjz32YPTo0ey44440adKE3/72t7z22muUlJTQr18/2rZtS8uWLTn++ONZuHDhynOnTp2KJG699VbOOecc2rRpQ9OmTenevTtTp04tdZ1ly5Zx0UUXUVhYyLrrrkthYSEXXXRRqRWKkvWdf/75bLLJJjRq1Iizzz6bgQMHAtCwYUMklZoN2r9/f3baaSeaNWtGq1at2HvvvXn11VdLXX/8+PFI4sknn+SMM86gVatWtG7dmqOPPprvv/++VNmSkhKuvvpqtt1225Wr33Tr1o2PPvpoZZk5c+bQu3dv2rVrR6NGjejYsSNDhgyp8X8P59ZmVeplmdnzki4BLo0rvIwAvgN2IgxvziMEw6QRxMkswEvxdZCkcwjBZIykOwk9qVaxzgIz61tBsyYB84FbJPUnrOxzEWFIuDpvLx9D6Em+Iemf/LRQQEfCDNSGwCgze1/SA8CA+Ox0EqE3ezHwQGqCToXMbIqk+wk/23WAN4B9gT9Wto7t2zWjuAbP8+qLTz75hPPOO49//OMfrLfeepx//vkcdNBBHHTQQZSUlDBs2DA+/PBDzjvvPNq0acM111xT6vwrr7ySHXfckbvvvptZs2bRr18/9ttvP95//30aNgxv8Bx33HE8/PDD9OvXjz322INXXnmFQYMG8dlnn3H//aUnHl9++eXsvPPODBkyhOXLl7PTTjuxcOFC7rzzTl566SUKCgpKlZ8+fTp9+vRh0003ZeHChdx777107tyZ4uJidthhh1JlzzrrLLp3787999/PlClTOP/88ykoKGD48J8mUvfs2ZMnnniCs88+m3322YclS5YwceJEvv76azp27Mj8+fPZfffdWbx4MQMGDGDLLbdkzJgx9O7dm6VLl/L3v/89n/95nFtrVHkY0swuk/QGYam5uwk9uC8JgfBKM0s/a3uO8FyuHWEiTbq+tyTtDPQHbiIEtdnAW1RiBqqZzZZ0CHAd4VWPGcBgwjPA/tW4v68l7cJPS82dS/g5TQVGx7pzjgM+IwTOi+K1ryb8MlAdpwI/AP8HrEsYqv4rIUi7Spo7dy6TJk2iffv2AKxYsYKDDz6Yzz//nLFjwyj6/vvvz8SJE3nkkUdWCZDrr78+o0aNWjl5Zuutt2aPPfZgxIgRnHTSSbz33ns88MAD9O/fnwEDBgCw3377UVBQwMUXX0zfvn1LBbKNNtqIxx9/vFQvcdNNw+utu+yyCw0alP7fcOjQoSv/vHz5crp168avf/1r7rzzTgYPHlyqbOfOnfnnP/+5sg1Tpkxh6NChDBs2DEmMGzeOkSNHMnjwYM4888yV5/Xo8dPk8MGDB/PFF18wefJkOnToAMA+++zD999/z8CBA+ndu/cqbXTu56Ba0+fMbLSZ7W9mLcyskZl1MLPzMoIjZrbczNqameKMy6z6PjSznmbWJta3qZkdZGbPJMocb2aZL82b2Tgz+62ZNTGzX5rZTWY2IL3GamzDgMT3VcrE/T+Y2RWxzl/ENm1jZmeZ2WeJcsvM7CIz28LMGsbPi8xsWaLM1HjdoalrjI/7xyf2LTKz3mbW0szWiz+Dl2O5YVn37la19dZbrwyOAB07dgRCUEzq2LEj06ZNW+WZ4OGHH15qZunuu+/OpptuyiuvvALAxIlh9Pzoo48udV7u+4QJE0rt79GjR5VeqB87dixdu3Zlww03pEGDBjRs2JCPP/6YKVOmrFL2wANLjxhsv/32LF26lG++CXO7nn32WSRxyimnlHm90aNHs8suu7DllltSUlKyctt///2ZO3cuH3zwQaXb7lx94r8WunqnRYvSa1Osu+66Ze4vKSlh+fLlpXpIG2206ryojTbaiOnTpwPw7bfh98C2bduWKrPxxhuXOp6TLleet956iz/+8Y/sv//+3HnnnbRt25aCggJOPvlklixZdX2Oli1LT5Zu1ChM3M6VnTt3Li1btix3icFZs2bxySefrBw+Tps7t6rzzZyrHzxAOpeS632l9+24447AT0Fp5syZ/PKXv1xZZubM8IbPhhtuWOrcqvQeR44cSYMGDXjsscdKBazvvvuO5s2bV/4molatWvHtt9+yePHiMoPkhhtuSJs2bVYZvs3ZZpttqnxd5+oDf0PZuZRHH3201PuJL7/8MtOmTaNTp04A7LXXXgA8+OCDpc67776wcmDnzp2pSK6nt3jx4lL7Fy1aREFBQamgOm7cOL788stq3El4LmlmpZ5rpuVmtG6++eYUFRWtsq2//vrVurZzazvvQTqXsmDBAnr06MGpp57K7NmzufDCC+nQoQPHHnssAL/+9a858sgjGTBgACUlJey222688sorXHbZZRx55JGrzDTNsu222wJw3XXXccABB1BQUEBRURHdunXjxhtv5Pjjj+eEE07g448/5rLLLqNdu3bVupeuXbty2GGHcc455/DVV1+x9957s2zZMiZOnMiBBx5Ily5d6NOnDw899BB77rknffr0YZtttmHhwoV89NFHvPjii4waNariCzlXD3mAdDVa6q0+uvDCC/nkk09WvifZtWtXbr755lJDnsOHD6d9+/bcddddDBo0iE022YQLLriA/v0rN3G6e/funH766dx6661ceumlmBlmxv77789NN93E9ddfz8iRI9luu+0YMWIEgwYNqvb9PPjgg1x99dUMHz6cG2+8kWbNmrHzzjtz8sknA9CsWTMmTZrEpZdeytVXX8306dNp3rw522yzDYcddli1r+vc2k6+qkf9UVRUZMXFZa+t8OGHH/KrX/1qNbZo7TJ16lS23HJL7rjjjpXBw1XM/165tZ2kN82sKL3fn0E655xzGdboACnpcEkjJX0REylPkXSlpLzNGpB0fExoXJjYNz7uS2/TEmWGSZpahevsJWm0pBmSlsTkz6MlHZUoU1jGdU1ShWNsk6fPo7Dv0ys355xz1bemP4P8P8IqPf2AacBvgQFAV0m7pRYyz7f/Ela2SapW+ixJPYDHCImYzyAsdL4FPy0ll06cfCWrJm2ehqtVhYWFvpC4c26lNT1A/snMZie+T5D0LTAc6MJPWUNqw4JEWq5qiQmiSwjrzb4NHGKl/wUenkrnlfNZTa/tnHOuZtboIdZUcMx5I362g1JDpLtKuk/S/DiMeVM6LZek9pKelrRI0mxJg6l6zshMieHR0yVdI2kGocfZnLAu7CzL6J7Uci/YOedcNa3pPcgse8XPD1P77wEeAA4lZNUYQMg00h9A0rqEhdObAH8DZhGGUA8t60IxS0fS8qwgl/IPQhDvRUgGvQR4HTguPkd8GJhcQT3rpK8d83HWmJlVaWUX58rjQ9KuPluje5BpknIZQcZm5Iq838wuMbOxZnYZ8B9Cmq2c44D2wKFmdreZPQ30IKTKyrI7IcdkcjupEs38hjCU+pSZjTKzxYRUYC8Tgue7wPeSnpCUzv2Yc3v62hnBGgBJvSQVSype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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rf_importances.sort_values(by=\"Importance\", ascending=False)[10::-1].plot.barh();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(Note: pandas has some built-in rudimentary plotting functionalities, which are quite convenient at times.) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "#### Other tools\n",
    "\n",
    "- [ELI5](https://github.com/TeamHG-Memex/eli5) is another related package.\n",
    "- [lime](https://github.com/marcotcr/lime) is yet another."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you're not already impressed, keep in mind:\n",
    "\n",
    "- So far we've only used sklearn models.\n",
    "- Most sklearn models have some built-in measure of feature importances.\n",
    "- On many tasks we need to move beyond sklearn, e.g. LightGBM, deep learning.\n",
    "  - Not sure yet how much of that we'll do in this course.\n",
    "- These tools work on other models as well, which makes them extremely useful."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Why do we want this information?\n",
    "\n",
    "Possible reasons:\n",
    "\n",
    "- Identify features that are not useful and maybe remove them.\n",
    "- Get guidance on what new data to collect.\n",
    "  - New features related to useful features -> better results.\n",
    "  - Don't bother collecting useless features -> save resources.\n",
    "- Help explain why the model is making certain predictions. \n",
    "  - Debugging, if the model is behaving strangely.\n",
    "  - Regulatory requirements.\n",
    "  - Fairness / bias.\n",
    "  - Keep in mind this can be use on **deployment** predictions!\n",
    "- And more..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "- Ensemble methods can be used for regression as well\n",
    "  - Averaging now takes the mean instead of voting\n",
    "  - Stacking uses linear regression as the meta-model by default (instead of logistic regression)\n",
    "- Prediction intervals are useful for communicating uncertainty\n",
    "  - We will generate them using quantile regression where available in the software packages we're using\n",
    "  - We won't interpret the quantiles formally or draw statistical conclusions\n",
    "- Like `LogisticRegression`, we have interpretable coefficients in `Ridge`\n",
    "  - Positive means increasing that feature leads to a larger prediction, vice versa for negative\n",
    "  - The interpretation requires un-scaling for numeric features, a bit easier for categorical features\n",
    "  - Relationships are not causal!\n",
    "- SHAP is an awesome tool for model interpretability\n",
    "  - It gives signed (pos or neg) feature importances\n",
    "  - Also allows us to explore a particular prediction, even on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Feature importances True/False\n",
    "\n",
    "Part 1:\n",
    "\n",
    "1. With linear regression, if the first coefficient is 5, that means increasing your first feature by 1 increases the prediction by 5.\n",
    "1. With linear models, increasing a feature value always impacts the prediction in the same direction; with other models, this may not be the case.\n",
    "2. Since the `PoolArea` has a positive coefficient, expanding my pool will get me a higher price when I sell my house.\n",
    "\n",
    "Part 2:\n",
    "\n",
    "1. scikit-learn's feature importances only pertain to the training data. \n",
    "2. SHAP values only pertain to the training data.\n",
    "3. Based on the plot below, newer houses tend to cost more than older houses.\n",
    "4. Based on the plot below, age is less important for higher quality houses than for lower quality houses.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 540x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.dependence_plot(\"YearBuilt\", shap_values, X_train_enc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
